Encryption 来自Java字节数组的Coldfusion 9加密密钥
我正在从事一个项目,我们在C#、Java和ColdFusion应用程序之间传递加密数据。为256位AES加密生成密钥和iv。我有以下数组,我需要在ColdFusion 9中将其转换为可用密钥 密钥的Java代码Encryption 来自Java字节数组的Coldfusion 9加密密钥,encryption,coldfusion,aes,Encryption,Coldfusion,Aes,我正在从事一个项目,我们在C#、Java和ColdFusion应用程序之间传递加密数据。为256位AES加密生成密钥和iv。我有以下数组,我需要在ColdFusion 9中将其转换为可用密钥 密钥的Java代码 new byte[]{ (byte)172, (byte)181, (byte)241, (byte)21, (byte)129, (byte)236, (byte)96, (byte)46, (byte)92, (byte)211
new byte[]{
(byte)172, (byte)181, (byte)241, (byte)21, (byte)129,
(byte)236, (byte)96, (byte)46, (byte)92, (byte)211,
(byte)187, (byte)106, (byte)90,(byte)69, (byte)29,
(byte)186, (byte)99, (byte)65, (byte)134, (byte)125,
(byte)218,(byte)117, (byte)9, (byte)223, (byte)13,
(byte)207, (byte)20, (byte)62, (byte)31,(byte)226, (byte)129, (byte)33
}
要加密的ColdFusion代码(似乎无法在此处全部显示):
一种方法是将int值转换为字节数组,然后转换为base64
<cfset ints = [172,181,241,21,129,236,96,46,92,211,187,106,90,69,29,186,99,65,134,125,218,117,9,223,13,207,20,62,31,226,129,33]>
<cfset bytes = []>
<cfloop array="#ints#" index="i">
<cfset arrayAppend(bytes, javacast("int", i).byteValue())>
</cfloop>
<cfset keyAsBase64 = BinaryEncode(javacast("byte[]", bytes), "base64")>
谢谢!这工作做得很好!如果我尝试将相同的逻辑应用于初始化向量,它将不起作用。我收到一条错误消息“错误的IV长度:必须是16字节长。” IV的阵列为:
getIV = [125,56,31,217,204,10,29,154,162,142,127,89,77,225,31,100]
IV不需要在base64中。您是否只是传入原始字节(即javacast(“byte[]”,bytes))
getIV = [125,56,31,217,204,10,29,154,162,142,127,89,77,225,31,100]