Node.js 将字符串加密为字母数字

Node.js encrypt a string into alphanumerical

我目前正在使用 NPM 模块 crypto-js 来加密字符串。代码如下:

CryptoJS.AES.encrypt("hello", "secrete_key").toString()

这会产生一个加密字符串:U2FsdGVkX1/G276++MaPasgSVxcPUgP72A1wMaB8aAM=

注意,在加密后的字符串中,有/+=等特殊符号。这些生成的特殊符号会导致我的应用出现问题。有没有一种方法可以将字符串加密为仅字母数字?我喜欢 crypto-js 的工作方式,因为它很简单。我只需要输入字符串和密码哈希。如果crypto-js做不到,还有哪些模块可以简单直接的实现?

CryptoJS 还包括 encoding/decoding 的实用程序,因此您可以将加密的字符串转换为 URL-safe 格式。有关详细信息,请参阅 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)