Blowfish 解密十六进制编码的字符串
Blowfish decrypting hex encoded string
我正在尝试通过 Blowfish 解密 Hex 编码的字符串。但是结果和正确的不一样。
String s="a1d0534e4baf9e670bde8670caee8b87"
String decKey = "R=U!LH$O2B#";
Cipher m_decrypt = Cipher.getInstance("Blowfish/ECB/PKCS5Padding");
m_decrypt.init(Cipher.DECRYPT_MODE, new SecretKeySpec(decKey.getBytes(),"Blowfish"));
byte[] decrypted = m_decrypt.doFinal(Hex.decodeHex(s.toCharArray()));
网站的正确结果:c6 b7 8d 52 31 35 30 34 31 38 38 36 39 37 02 02
我的结果:-58 -73 -115 82 49 53 48 52 49 56 56 54 57 55
我在这个网站上检查了正确的字节数组http://blowfish.online-domain-tools.com/
正确结果:c6 b7 8d 52 31 35 30 34 31 38 38 36 39 37 02 02
是十六进制编码,包含两个字节的填充。
我的结果:-58 -73 -115 82 49 53 48 52 49 56 56 54 57 55
在没有填充字节的带符号十进制编码中。
它们是相同的值,只是在不同的编码中 "My result" 像往常一样删除了填充。
我正在尝试通过 Blowfish 解密 Hex 编码的字符串。但是结果和正确的不一样。
String s="a1d0534e4baf9e670bde8670caee8b87"
String decKey = "R=U!LH$O2B#";
Cipher m_decrypt = Cipher.getInstance("Blowfish/ECB/PKCS5Padding");
m_decrypt.init(Cipher.DECRYPT_MODE, new SecretKeySpec(decKey.getBytes(),"Blowfish"));
byte[] decrypted = m_decrypt.doFinal(Hex.decodeHex(s.toCharArray()));
网站的正确结果:c6 b7 8d 52 31 35 30 34 31 38 38 36 39 37 02 02
我的结果:-58 -73 -115 82 49 53 48 52 49 56 56 54 57 55
我在这个网站上检查了正确的字节数组http://blowfish.online-domain-tools.com/
正确结果:c6 b7 8d 52 31 35 30 34 31 38 38 36 39 37 02 02
是十六进制编码,包含两个字节的填充。
我的结果:-58 -73 -115 82 49 53 48 52 49 56 56 54 57 55
在没有填充字节的带符号十进制编码中。
它们是相同的值,只是在不同的编码中 "My result" 像往常一样删除了填充。