在Coldfusion中加密,然后在PHP中解密
我有一个问题,复制
PHP和Coldfusion中生成的相同结果.
在PHP加密这种方式: <?php $key = "$224455@"; $Valor = "TESTE"; $base = chop(base64_encode(mcrypt_encrypt(MCRYPT_DES,$key,$Valor,MCRYPT_MODE_ECB))); ?> 我有结果:
在Coldfusion这样做: <cfset Valor = "TESTE"> <cfset Key = "$224455@"> <cfset base = Encrypt(Valor,ToBase64(Key),"DES/ECB/PKCS5Padding","BASE64")> 结果:
什么不是ColdFusion产生与PHP相同的价值? 非常感谢你
(评论太长)
Artjom B. already provided the answer above. Artjom B.写道
不幸的是,很难在CF中生产null character. AFAIK,唯一有效的技术是use 更新: 例: Valor = nullPad("TESTE",8); Key = "$224455@"; result = Encrypt(Valor,"DES/ECB/NoPadding","BASE64"); // Result: TzwRx5Bxoa0= WriteDump( "Encrypted Text = "& Result ); 功能: /* Pads a string,with null bytes,to a multiple of the given block size @param plainText - string to pad @param blockSize - pad string so it is a multiple of this size @param encoding - charset encoding of text */ string function nullPad( string plainText,numeric blockSize,string encoding="UTF-8") { local.newText = arguments.plainText; local.bytes = charsetDecode(arguments.plainText,arguments.encoding); local.remain = arrayLen( local.bytes ) % arguments.blockSize; if (local.remain neq 0) { local.padSize = arguments.blockSize - local.remain; local.newText &= repeatString( urlDecode("%00"),local.padSize ); } return local.newText; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |