Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Rijndael-256不工作_Android_Encryption_Rijndael - Fatal编程技术网

Android Rijndael-256不工作

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

我有这段代码来解密php(mcrypt)令牌

问题是,解码方法总是使用Rijndael-128而不是-256。当我在php端使用-128编码时,我可以在Android中解码。当使用256时,它不工作。(getHash返回一个SHA-256哈希键):

这应该给出文本“wdRe00YxTFGQ65QmWukPxFLlZRSPqmRY8tHufikBHW0=”,但它没有

如何指定或强制使用正确的代码?

您的问题(可能)是您正在使用
MCRYPT\u RIJNDAEL\u 256
。这不等于AES-256
MCRYPT_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());