java - Adobe CryptoSupport 使用什么进行哈希处理?

标签 java encryption adobe aem

我已经阅读了有关现在在 CQ5.5+ 中的 Adob​​e CryptoSupport 的信息,它旨在提供用于加密和解密数据的实用程序,例如,以更安全地在 JCR 中存储 API key 。

JavaDocs或一般的 Adob​​e 文档没有提供有关其实现的详细信息,只是说明:

Note that this method and the decrypt(byte[]) method provide full round trip support:

decrypt(encrypt(plainText)).equals(plainText) == true   

Please note, that calling this method twice on the same plainText does not return the same cipher text:

encrypt(plainText).equals(encrypt(plainText)) == false

这相当有用,但它没有告诉我这些密码最初是如何加密的。我试过在一个 CQ 实例上加密并在另一个实例上解密,但这似乎不起作用。

要自信地使用此功能,我想知道 CQ 基于什么进行加密。 我主要担心两个问题:

  • 我怎么知道服务是基于安全的东西加盐(认为这是正确的术语)?或者如果它需要配置,我该怎么做? (即它是否使用与“admin/admin”登录相同级别的安全 OOTB!)
  • 如果加密是特定于环境的,这是否意味着我无法加密数据然后在服务器之间传输?

最佳答案

Felix 控制台中的 bundle 描述指出

The Crypto Support bundle provides a CryptoSupport services which allows applications to encrypt and decrypt binary and String data. Encryption is based on the symmetric AES/CBC/PKCS5Padding (AES algorithm, CBC mode with PKCS5 padding) from the RSA JSafe libary.

key 是在首次启动 Adobe Granite Crypto Support bundle 期间随机生成的,然后保存为 /etc/key/master 属性。 它是按实例设计的,我认为在 CQ 安装之间移动此 key 不是一个好主意。 实际上,Adobe says it's a good idea在作者和发布实例之间移动 key 。

回答您的问题:

  • 您无需担心配置服务,因为它会在第一次捆绑激活期间自动完成,
  • 只要您也移动 key ,就可以将加密数据从一个实例移动到另一个实例。

关于java - Adobe CryptoSupport 使用什么进行哈希处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20333577/

相关文章:

java - 打印首选项节点的子节点

java - 使用 PKCS#7 加密

java - Mockito实体管理器返回namedQuery

java - AES加密/解密java bouncy caSTLe解释?

php - mcrypt_encrypt 的 32 个字符的 PHP AES key

security - 给定一个哈希算法,除了暴力破解之外,还有更有效的方法来 'unhash' 吗?

c# - 使用c#编写adobe插件

PDF 在 sitecore 中转换为 .ashx 无法使用 IE 打开

java - 在 Java 中存储静态映射

video - 使用 ffmpeg 进行 AVI 压缩,同时保持 alpha channel ,用于 Adob​​e Premiere