基本上在 AEM 中,我想使用 AEM CryptoSupport 加密一些文本并将加密的密钥传递给其他系统(比如 ABC 系统),然后 ABC 系统解密密钥以执行某些操作。
AEM 可以将 Adobe Granite Crypto Support 0.0.8 jar 共享到 ABC 系统进行加密/解密,但我想知道 AEM 如何将 HMAC 和 Master 文件共享到其他系统进行解密?这可能吗 ?请指教。
答案 0 :(得分:3)
您不应该与他们分享罐子。 AEM CryptoSupport 使用 AES/CBC/PKCS5Padding 进行加密。只要两个系统都使用已知的密钥和方案,您就应该能够加密/解密而不必使用相同的 jar。 AEM Cryptosupport 可以与 AEM 生成的密钥以外的密钥一起使用。
CryptoSupport#encrypt(byte[] key, byte[] plainText)
生成加密密钥字节的方法是使用
CryptoSupport.hmac_256(shared_hash_key, shared_secret)
这允许您想出一个共享密钥以与其他系统一起使用,而无需公开 AEM 密钥。
要在另一个系统上解密,请使用相同的哈希密钥和秘密。 CryptoSupport.encrypt 输出中':'之后的部分是IV。