这是我的Anguarjs代码
$httpProvider.defaults.headers.common['key'] = CryptoJS.AES.encrypt('<datatoencrypt>', '<key let says xyx>=', {
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7,
keySize: '256 / 32'
});
节点JS代码使用解密,算法为aes-256-cbc,密钥与angular相同。
app.all('*', function (req, res, next) {
var headers = JSON.parse(JSON.stringify(req.headers));
var decipher = crypto.createDecipher(algorithm, key);
decipher.setAutoPadding(true);
var dec = decipher.update(headers.key, 'hex', 'utf8');
dec += decipher.final('utf8');
if (dec != "<datatoencrypt>")
{
//do something
next();
}
else
{
//do something
next();
}});
我无法解密以角度方式完成的加密。如果单独使用它们都可以正常工作。如果我以角度本身解密字符串,它对节点来说也是一样的。但是Cross平台没有用,任何人都可以建议我的方法有什么问题。任何帮助,将不胜感激。 我已经尝试从两侧删除autopadding,也缓冲加密/解密不起作用。 提前致谢。