ruby-on-rails - 适用于 Ruby 和 Node.JS 的 2 路加密算法,仅加密字母和数字

标签 ruby-on-rails node.js encryption aes

我有一个 node.js 服务器,它将加密字符串并将其存储到数据库中。我还有一个 RoR(Ruby on Rails)服务器,它将从数据库中检索加密的字符串并解密它。我唯一的标准是加密只能将字符串加密为字母和数字组成的字符串(无特殊字符)

任何建议

最佳答案

正如其他人所建议的,AES-CBC 或 AES-CTR 等强加密与 Base-64 一起是一种解决方案。除了 62 个字母数字字符之外,Base-64 还使用 +、/和 =。十六进制(Base-16)严格来说是字母数字,但会占用更多存储空间。与 Base-64 一样,Base-32 仅具有填充字符 =。在紧要关头,可以省略填充,并重新计算以进行解码。

如果您愿意接受较低级别的安全性,那么另一种选择是使用 Vigenère cypher ,您可以在其中明确确定允许的输入和输出字符。

关于ruby-on-rails - 适用于 Ruby 和 Node.JS 的 2 路加密算法,仅加密字母和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12011289/

相关文章:

ruby-on-rails - 如何在 Controller 能力测试中 stub load_and_authorize_resource 的负载?

javascript - 如何触发 best_in_place 事件

node.js - 当在Mongoose中使用时,Node.js UUIDv4产生恒定的id值

node.js - NodeJS ReadStream 一次不读取 bufferSize 字节

c# - 使用 2048 位 key 的 RSA 解密在 Windows Server 2012 r2 上为长度为 340 的加密文本提供了错误数据,而它在 Windows 8 上运行良好

ruby-on-rails - 我如何将 'join' 数组添加到结果字符串的开头以加入第一个字符?

javascript - 为什么我的 vscode 在运行扩展时总是显示正在构建?

Java - AES CBC 算法生成 SecretKeySpec 的不同方式

c# - 如何在本地正确存储密码

ruby-on-rails - 为什么 << 关联时 counter_cache 列不增加?