0

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

}

}

提前致谢。

4

2 回答 2

2

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

于 2013-11-04T13:11:36.560 回答
0

Sha512 是一种散列算法。一旦对响应进行哈希处理,您就不能对其进行去哈希处理。这就是哈希的用途。

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

于 2013-11-04T13:13:01.740 回答