我想使用带有私钥和公钥的 SHA512 算法加密和解密Web服务(KSOAP或JSON)的请求和响应。
有没有人对此有所了解。我对此没有多少经验。如果我错了,请原谅我。
我猜以下类用于加密字符串。我想知道如何解密字符串。而且我也想知道如何使用私钥/公钥。
公共类SHA2Demo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String message = "test";
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("SHA-512");
} catch (NoSuchAlgorithmException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
messageDigest.update(message.getBytes("UTF-16BE"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] digest = messageDigest.digest();
StringBuffer digestInHex = new StringBuffer();
for (int i = 0, l = digest.length; i < l; i++) {
// Preserve the bit representation when casting to integer.
int intRep = digest[i] & 0xFF;
// Add leading zero if value is less than 0x10.
if (intRep < 0x10) digestInHex.append('\u0030');
// Convert value to hex.
digestInHex.append(Integer.toHexString(intRep));
}
System.out.println(digestInHex.toString());
}
}
提前致谢。
答案 0 :(得分:2)
Sha512是哈希,而不是加密。你不能用它加密任何东西。使用类似RSA或椭圆曲线的东西。
答案 1 :(得分:0)
Sha512是一种散列算法。散列后,您无法对响应进行反散列。这就是哈希的用途。
您可能正在寻找RSA或AES。您可能需要考虑的其他事项是使用SSL的传输级别安全性。