des加密怎么在PHP与。net中使用

des加密怎么在PHP与。net中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强> PHP版:

代码如下:


类STD3Des
, {
,,,,私人美元关键=啊?br/>,,,,私人$ 4=啊?br/>
,,,,/* *
,,,,*构造,传递二个已经进行base64_encode的关键与IV
,,,,*
,,,,* @param字符串$关键
,,,,第四* @param字符串$
,,,,*/
,,,,函数__construct(键,四美元)
,,,,{
,,,,,,,,如果(空(键)美元| |空(4美元)){
,,,,,,,,,,,,回声& # 39;密钥和iv不是有效# 39;;
,,,,,,,,,,,,退出();
,,,,,,,,}
,,,,,,,,$ this→键=$键;
,,,,,,,,这→美元=$ iv;
,,,,}

,,,,/* *
,,,,*加密
,,,,* @param & lt; type>美元价值
,,,,* @return & lt; type>
,,,,*/
,,,,公共函数加密(美元值)
,,,,{
,,,,,,,,$ td=mcrypt_module_open (MCRYPT_3DES & # 39; & # 39;, MCRYPT_MODE_CBC, & # 39; & # 39;);
,,,,,,,,$ 4=base64_decode ($ this→iv);
,,,,,,,,$ value=https://www.yisu.com/zixun/$ this -> PaddingPKCS7(美元值);
,,,,,,,,(关键=base64_decode美元这→键),
,,,,,,,,mcrypt_generic_init (td,钥匙,美元(四)美元;
,,,,,,,,随著美元=base64_encode (mcrypt_generic (td,价值美元));
,,,,,,,,mcrypt_generic_deinit (td);
,,,,,,,,mcrypt_module_close (td);
,,,,,,,,返回ret美元;
,,,,}

,,,,/* *
,,,,*解密
,,,,* @param & lt; type>美元价值
,,,,* @return & lt; type>
,,,,*/
,,,,公共函数解密(美元值)
,,,,{
,,,,,,,,$ td=mcrypt_module_open (MCRYPT_3DES & # 39; & # 39;, MCRYPT_MODE_CBC, & # 39; & # 39;);
,,,,,,,,$ 4=base64_decode ($ this→iv);
,,,,,,,,(关键=base64_decode美元这→键),
,,,,,,,,mcrypt_generic_init (td,钥匙,美元(四)美元;
,,,,,,,,ret=美元削减(mdecrypt_generic (td base64_decode美元(美元值))),
,,,,,,,,ret=这→美元UnPaddingPKCS7 (ret)美元;
,,,,,,,,mcrypt_generic_deinit (td);
,,,,,,,,mcrypt_module_close (td);
,,,,,,,,返回ret美元;
,,,,}

,,,,私有函数PaddingPKCS7(元数据)
,,,,{
,,,,,,,,$ block_size=mcrypt_get_block_size (& # 39; tripledes # 39;, & # 39; cbc # 39;);
,,,,,,,,padding_char=block_size——美元(strlen(元数据)% block_size美元);
,,,,,,,,$数据。=函数((padding_char美元),从而向padding_char美元);
,,,,,,,,返回数据;美元
,,,,}

,,,,私有函数UnPaddingPKCS7(文本)美元
,,,,{
,,,,,,,,(垫=奥德美元文本{strlen(文本)美元- 1});
,,,,,,,,如果(垫比美元;strlen(文本)美元){
,,,,,,,,,,,,返回false;
,,,,,,,,}
,,,,,,,,如果(strspn(文本、美元(pad)美元,从而向strlen(文本)美元- pad)美元!=$ pad) {
,,,,,,,,,,,,返回false;
,,,,,,,,}
,,,,,,,,返回字符串的子串(文本、美元0,- 1 * $垫),
,,,,null

des加密怎么在PHP与。net中使用