Android Rijndael-256不工作
我有这段代码来解密php(mcrypt)令牌 问题是,解码方法总是使用Rijndael-128而不是-256。当我在php端使用-128编码时,我可以在Android中解码。当使用256时,它不工作。(getHash返回一个SHA-256哈希键): 这应该给出文本“wdRe00YxTFGQ65QmWukPxFLlZRSPqmRY8tHufikBHW0=”,但它没有 如何指定或强制使用正确的代码?您的问题(可能)是您正在使用Android Rijndael-256不工作,android,encryption,rijndael,Android,Encryption,Rijndael,我有这段代码来解密php(mcrypt)令牌 问题是,解码方法总是使用Rijndael-128而不是-256。当我在php端使用-128编码时,我可以在Android中解码。当使用256时,它不工作。(getHash返回一个SHA-256哈希键): 这应该给出文本“wdRe00YxTFGQ65QmWukPxFLlZRSPqmRY8tHufikBHW0=”,但它没有 如何指定或强制使用正确的代码?您的问题(可能)是您正在使用MCRYPT\u RIJNDAEL\u 256。这不等于AES-256MC
MCRYPT\u RIJNDAEL\u 256
。这不等于AES-256MCRYPT_RIJNDAEL_256
为256位的RIJNDAEL密码指定块大小。另一方面,AES-256为256位的AES密码指定密钥大小。NIST接受块大小为128位的Rijndael作为AES算法
可能最好保持MCRYPT_RIJNDAEL_128
,因为MCRYPT_RIJNDAEL_256
没有指定标准密码。您仍然可以使用16、24或32键(分别)来使用AES-128、AES-192或AES-256。请注意,PHP mcrypt确实允许其他密钥大小(通过添加零值字节),并且不使用任何形式的标准化填充“ZeroBytePadding”
与PHP不兼容,因为如果明文是块大小的倍数,它会添加一个零块。然而,在这种情况下,PHP不会添加一个零块
如果您确实想将块大小保持在256(但为什么要这样做),请签出。您可以使用JNCryptor:
JNCryptor myJNCryptor=new AES256JNCryptor();
byte[] ciphertext=cryptor.encryptData(yourtext.getBytes(), KEY.toCharArray());
我的回答有什么遗漏吗,塞拉斯?
JNCryptor myJNCryptor=new AES256JNCryptor();
byte[] ciphertext=cryptor.encryptData(yourtext.getBytes(), KEY.toCharArray());