首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自Java Byte Array的Coldfusion 9加密密钥

来自Java Byte Array的Coldfusion 9加密密钥
EN

Stack Overflow用户
提问于 2010-10-17 05:25:53
回答 2查看 1.4K关注 0票数 1

我正在做一个项目,在这个项目中,我们在C#、Java和ColdFusion应用程序之间传递加密数据。以生成用于256位AES加密的密钥和iv。我有以下数组,需要在ColdFusion 9中将其转换为可用的密钥

密钥的Java代码

代码语言:javascript
复制
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代码(似乎无法将其全部显示在此处):

代码语言:javascript
复制
<cfset awsSecret = "[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]"

使用.getBytes()和base64编码-我最终也得到了一个113字节的键。任何帮助都是很棒的!

EN

回答 2

Stack Overflow用户

发布于 2010-10-17 14:51:14

一种方法是将int值转换为字节数组,然后转换为base64

代码语言:javascript
复制
<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")>
票数 2
EN

Stack Overflow用户

发布于 2010-11-04 02:27:23

谢谢!它完美地工作了!如果我尝试将相同的逻辑应用于初始化向量,它将不起作用。我收到错误信息“错误的IV长度:必须是16字节长。”

IV的数组是:

代码语言:javascript
复制
getIV = [125,56,31,217,204,10,29,154,162,142,127,89,77,225,31,100]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3950869

复制
相关文章

相似问题

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