首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何读取由Clojure中的Ruby加密的AES 256 CBC中的文件/文本

如何读取由Clojure中的Ruby加密的AES 256 CBC中的文件/文本
EN

Stack Overflow用户
提问于 2020-02-13 18:36:49
回答 2查看 222关注 0票数 0

我们有一些JSON文件存在于我们内部网络中的文件系统上,这些文件由Ruby编写,并由Clojure (还有Ruby)读取。我们想加密他们以增加他们的安全性。我们在Ruby项目中使用了AES 256 CBC,用于其他需要对称加密的东西,所以我们想使用它。但是,这一次,加密将需要在Clojure应用程序中解密。在Ruby中表示的加密输出(使用它作为指南:OpenSSL::密码)看起来如下:“a\x96\xECLI\xBC%\xC4@{xBD\x99%\xA1\x84\x84\x84”,并将其放入Clojure中,会产生一堆“语法错误.不受支持的转义字符:\x”“我试着使每个"\”a“\\”,但随后使用Clojure的库“巴迪-核心”和:erc256-cbc-hmac-sha-sha512作为加密算法的结果:

代码语言:javascript
运行
复制
Execution error (AssertionError) at buddy.core.crypto/eval1558$fn (crypto.clj:478).
Assert failed: (keylength? key 64)

即使密钥/iv在Ruby中用于加密字符串时也是很长的。

总括而言:

  • 要将Ruby字符串转换为Clojure字符串,用双反斜杠替换所有反斜杠是正确的吗?
  • 是:Core 256 - CBC -hmac- the 512是正确的算法,用于Clojure的Buddy对AES 256 CBC进行解密吗?
  • 我最好还是在Clojure内部用Java来做这件事吧?(子问题:请提供关于将Ruby字符串转换为Java/Clojure String的建议)
EN

Stack Overflow用户

发布于 2020-02-13 19:16:32

Ruby不是有效的Java (即\x不是有效的转义字符),允许的Java转义字符在这里:https://docs.oracle.com/javase/specs/jls/se13/html/jls-3.html#jls-EscapeSequence

我不确定Ruby字符串在默认情况下是否是unicode,所以这有点棘手。最安全的选择是将加密结果转换为BASE64并使用它。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60214469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档