DES与urlENcode加密(加密)
问题描述:
我正在尝试使用DES加密/解密。但是,解密不起作用。我不断收到错误:无法读取空的特性“charCodeAt”DES与urlENcode加密(加密)
我使用这个编码:
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。