目前做加密实在是头痛;
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 实现这个解密过程。
求帮助。。
使用openssl_decrypt()函数
第一个参数 加密内容
第二个参数 加密方法,按你要求要填DES-ECB
第三个参数 加密密钥key
第四个参数 选项 OPENSSL_RAW_DATA
第五个参数 加密向量iv