我目前正在使用NPM模块crypto-js来加密字符串。代码如下:
CryptoJS.AES.encrypt("hello", "secrete_key").toString()这将生成一个加密字符串:U2FsdGVkX1/G276++MaPasgSVxcPUgP72A1wMaB8aAM=
请注意,在加密的字符串中,有一些特殊的符号,如/、+和=。这些生成的特殊符号会导致我的应用程序出现问题。有没有一种方法可以把一个字符串加密成只包含字母和数字的字符?我喜欢crypto-js的方式,因为它很简单。我只需要输入字符串和密码散列。如果crypto-js不能,还有什么模块可以用简单直接的方式实现这一点呢?
发布于 2020-11-03 17:08:26
CryptoJS还包括用于编码/解码的实用程序,因此您可以将加密的字符串转换为URL安全格式。有关更多信息,请参阅CryptoJS docs。
例如:
var CryptoJS = require("crypto-js");
let encrypted = CryptoJS.AES.encrypt("hello", "secrete_key").toString()
var encoded = CryptoJS.enc.Base64.parse(encrypted).toString(CryptoJS.enc.Hex);
console.log(encrypted)
console.log(encoded)
var decoded = CryptoJS.enc.Hex.parse(encoded).toString(CryptoJS.enc.Base64);
var decrypted = CryptoJS.AES.decrypt(decoded, "secrete_key").toString(CryptoJS.enc.Utf8);
console.log(decoded)
console.log(decrypted)https://stackoverflow.com/questions/64656073
复制相似问题