java端js端php端可以互相解密加密的DES +base64 +ECB 的算法实现

目前做加密实在是头痛;
java端加密的数据格式,在前端用js 解密,然后分发数据给第三方的php端,又需要实现解密。

目前已经实现了java 加密,js解密,但是php端的解密卡住了。
php目前只带的OpenSSL 解密 不知道如何解密。

下面是js解密算法:

var Crypto_decodeBase64 = function(key, enString){
            var Base64 = new CryptoJS.lib.Base64();       
            var keyHex = CryptoJS.enc.Utf8.parse(key);  
            /* 将秘钥转换为utf8格式*/
            var ivHex = CryptoJS.enc.Utf8.parse(Base64.getStrFromBytes([0x12, 0x34, 0x56,0x78, 0x90,  0xAB,0xCD, 0xEF ]));    
            /*将向量装换位字符串再转为utf8*/
            var decrypted = CryptoJS.DES.decrypt({ ciphertext: CryptoJS.enc.Base64.parse(enString)},
                                keyHex,
                                { iv: ivHex,  mode: CryptoJS.mode.ECB,  padding: CryptoJS.pad.NoPadding  });       
            return JSON.parse( Base64.decode(decrypted.toString(CryptoJS.enc.Utf8)));    
        } 

可能是还没理解加密的原理;
没办法用php 实现这个解密过程。
求帮助。。

阅读 2.1k
1 个回答

使用openssl_decrypt()函数
第一个参数 加密内容
第二个参数 加密方法,按你要求要填DES-ECB
第三个参数 加密密钥key
第四个参数 选项 OPENSSL_RAW_DATA
第五个参数 加密向量iv

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题