Android AES 加密秘钥
Android AES encryption secret key
我正在开发 Android 应用程序,我想使用 AES-128 进行加密。
我使用十六进制的密钥和文本。
我使用此网站:http://testprotect.com/appendix/AEScalc 使用以下密钥计算 AES 加密:"c4dcc3c6ce0acaec4327b6098260b0be" 我要加密的文本是:“6F4B1B252A5F0C3F2992E1A65E56E5B8”(十六进制)。
所以这个网站的结果给我“859499d0802de8cc6ba4f208da648a8f”,这就是我想要的结果。
http://hpics.li/d89105a
我在网上找到了一些代码,但很多代码都使用种子生成随机密钥,我想修复密钥。
实际上我正在使用以下代码,我认为这是我需要的代码但结果给了我 D/resultdebug: 72adc67b6d11e1c5fb89ddf5faeb0e030686b91f8bfaf6c41335f08955343f87
它与我想要的网站结果不同。
String text16 = "6F4B1B252A5F0C3F2992E1A65E56E5B8";
String secret16 = "c4dcc3c6ce0acaec4327b6098260b0be";
SecretKeySpec sks = new SecretKeySpec(secret16.getBytes(),"AES");
Cipher c = Cipher.getInstance("AES");
c.init(Cipher.ENCRYPT_MODE, sks);
c.update(text16.getBytes());
byte[] ciphertext = c.doFinal();
Log.d("resultdebug",new String(Hex.encode(ciphertext), "ASCII"));
你能告诉我哪里出了问题吗,谢谢。
您没有将十六进制转换为二进制,您得到的是字符的二进制而不是十六进制编码的值。
感谢 zaph,它解决了我的问题
我在代码中添加了这两行:
byte[] text = stringhextobyte(text16);
byte[] secret = stringhextobyte(secret16);
并且函数 stringhextobyte 允许我将我的十六进制字符串转换为字节数组,并且我得到了所需的结果。
我正在开发 Android 应用程序,我想使用 AES-128 进行加密。 我使用十六进制的密钥和文本。
我使用此网站:http://testprotect.com/appendix/AEScalc 使用以下密钥计算 AES 加密:"c4dcc3c6ce0acaec4327b6098260b0be" 我要加密的文本是:“6F4B1B252A5F0C3F2992E1A65E56E5B8”(十六进制)。
所以这个网站的结果给我“859499d0802de8cc6ba4f208da648a8f”,这就是我想要的结果。 http://hpics.li/d89105a
我在网上找到了一些代码,但很多代码都使用种子生成随机密钥,我想修复密钥。
实际上我正在使用以下代码,我认为这是我需要的代码但结果给了我 D/resultdebug: 72adc67b6d11e1c5fb89ddf5faeb0e030686b91f8bfaf6c41335f08955343f87
它与我想要的网站结果不同。
String text16 = "6F4B1B252A5F0C3F2992E1A65E56E5B8";
String secret16 = "c4dcc3c6ce0acaec4327b6098260b0be";
SecretKeySpec sks = new SecretKeySpec(secret16.getBytes(),"AES");
Cipher c = Cipher.getInstance("AES");
c.init(Cipher.ENCRYPT_MODE, sks);
c.update(text16.getBytes());
byte[] ciphertext = c.doFinal();
Log.d("resultdebug",new String(Hex.encode(ciphertext), "ASCII"));
你能告诉我哪里出了问题吗,谢谢。
您没有将十六进制转换为二进制,您得到的是字符的二进制而不是十六进制编码的值。
感谢 zaph,它解决了我的问题
我在代码中添加了这两行:
byte[] text = stringhextobyte(text16);
byte[] secret = stringhextobyte(secret16);
并且函数 stringhextobyte 允许我将我的十六进制字符串转换为字节数组,并且我得到了所需的结果。