DES与urlENcode加密(加密)

问题描述:

我正在尝试使用DES加密/解密。但是,解密不起作用。我不断收到错误:无法读取空的特性“charCodeAt”DES与urlENcode加密(加密)

解密是http://www.tero.co.uk/des/

我使用这个编码:

var decodedKey = decodeBase64(key); 
var em = urlEncode(encrypt(decodedKey, value)); 

,然后我试图使用此功能解密:

var emD = urlDecode(decrypt(decodedKey, em)) 

function encrypt(key, message) { 
     var ciphertext = des(key, message, 1, 0, null, 1); 
     var encodedCiphertext = encodeBase64(ciphertext); 
     return encodedCiphertext; 

     } 

     function decrypt(key,message) { 
     var ciphertext = des(key, message, 0, 1, null,1); 
     var plainText = decodeBase64(ciphertext); 
     return plainText; 
     }; 

有了:

urlEncode(encrypt(decodedKey, value)); 

你第一次加密然后URL编码。当你需要解密,你需要先URL解码然后解密 - 这样的:

decrypt(decodedKey, urlDecode(em)); 

,而不是因为你这个说法尝试解密,然后URL解码:

urlDecode(decrypt(decodedKey, em)); 

而且,请注意,DES被认为是不安全应该避免。使用安全密码,如AES