私はColdFusionで暗号化されたデータを持っており、Javaを使用して同じ正確な値に復号化および暗号化できる必要があります。私は誰かがこれで私を助けることができるかもしれないことを望んでいました。セキュリティのために秘密にしておく必要がある実際のPasswordKeyを除いて、ColdFusionで使用されるすべてのものを指定します。PasswordKeyの長さは23文字です。大文字と小文字、数字、および+記号と=記号を使用します。これは質問がたくさんあることを私は知っていますが、どんな助けでも大歓迎です。
オンラインで見つけたJava暗号化の例を使用して、以下の行をCFアプリで使用されている23文字に置き換えてみました。
private static final byte[] keyValue = new byte[] {'T', 'h', 'i', 's', 'I', 's', 'A', 'S', 'e', 'c', 'r', 'e', 't', 'K', 'e', 'y' };`
しかし、エラーが発生します:
java.security.InvalidKeyException: Invalid AES key length: 23 bytes
CFコードは次のとおりです。
Application.PasswordKey = "***********************";
Application.Algorithm = "AES";
Application.Encoding = "hex";
<cffunction name="encryptValue" access="public" returntype="string">
<cfargument name="strEncryptThis" required="yes">
<cfreturn Encrypt(TRIM(strEncryptThis), Application.PasswordKey, Application.Algorithm, Application.Encoding)>
</cffunction>
<cffunction name="decryptValue" access="public" returntype="string">
<cfargument name="strDecryptThis" required="yes">
<cfreturn Decrypt(TRIM(strDecryptThis), Application.PasswordKey, Application.Algorithm, Application.Encoding)>
</cffunction>