java和php的aes256,关于Java和PHP的AES256

到目前为止一直在逃避我的快速(长夜).我在PHP和Java中比较AES256并注意到差异.为简单起见,请忽略ascii键和null IV,这些将在生产中被替换.但我需要首先解决这个问题,无法弄清楚我在哪里犯错:

PHP:

echo base64_encode(

mcrypt_encrypt(

MCRYPT_RIJNDAEL_128,

"1234567890ABCDEF1234567890ABCDEF",

"This is a test",

MCRYPT_MODE_CBC,

"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"

)

);

Java的

byte[] key = "1234567890ABCDEF1234567890ABCDEF".getBytes("UTF-8");

byte[] iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

AlgorithmParameterSpec ivSpec = new IvParameterSpec(iv);

SecretKeySpec newKey = new SecretKeySpec(key, "AES");

Cipher cipher = Cipher.getInstance("AES");

cipher.init(Cipher.ENCRYPT_MODE, newKey, ivSpec);

byte[] results = cipher.doFinal("This is a test".getBytes("UTF-8"));

return Base64.encodeToString(results,Base64.DEFAULT);

PHP输出: 0KwK+eubMErzDaPU1+mwTQ==

Java输出: DEKGJDo3JPtk48tPgCVN3Q==

不是我期待的o_O!

我也试过MCRYPT_MODE_CBC,MCRYPT_MODE_CFB,MCRYPT_MODE_ECB,MCRYPT_MODE_NOFB,等他们都不产生的Java字符串.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值