如何使用SHA512算法加密和解密请求和响应

时间:2013-11-04 13:09:41

标签: android encryption sha512

我想使用带有私钥和公钥的 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());

}

}

提前致谢。

2 个答案:

答案 0 :(得分:2)

Sha512是哈希,而不是加密。你不能用它加密任何东西。使用类似RSA或椭圆曲线的东西。

答案 1 :(得分:0)

Sha512是一种散列算法。散列后,您无法对响应进行反散列。这就是哈希的用途。

您可能正在寻找RSA或AES。您可能需要考虑的其他事项是使用SSL的传输级别安全性。