使用SHA1算法加密用户凭据

时间:2011-10-02 08:32:51

标签: blackberry encryption sha1

我正在创建一个将请求发送到服务器的黑莓应用程序。因此需要对用户进行身份验证。所以为了做到这一点,我想在黑莓中使用SHA1加密UserID和密码。然后,使用用户ID和密码上的SHA1算法生成的加密数据将传递给服务器。

我的问题是如何实现这一点。有人可以提供示例代码,以便在黑莓手机中实现这一点。

2 个答案:

答案 0 :(得分:2)

SHA1不是加密算法。它是哈希函数。

http://en.wikipedia.org/wiki/SHA1

如果您正在谈论基本身份验证,那么您需要使用Base64算法来填充用户名和密码。

以下是有关此问题的讨论主题:HTTP authentication in J2ME

答案 1 :(得分:2)

添加此课程

public class Sha1 {

private static String convertToHex(byte[] data) {
    StringBuffer buf = new StringBuffer();
    for (int i = 0; i < data.length; i++) {
        int halfbyte = (data[i] >>> 4) & 0x0F;
        int two_halfs = 0;
        do {
            if ((0 <= halfbyte) && (halfbyte <= 9))
                buf.append((char) ('0' + halfbyte));
            else
                buf.append((char) ('a' + (halfbyte - 10)));
            halfbyte = data[i] & 0x0F;
        } while (two_halfs++ < 1);
    }
    return buf.toString();
}

public static String SHA1(String text) {
    SHA1Digest sha1Digest = new SHA1Digest();
    sha1Digest.update(text.getBytes(), 0, text.length());
    byte[] hashValBytes = new byte[sha1Digest.getDigestLength()];
    hashValBytes = sha1Digest.getDigest();
    return convertToHex(hashValBytes);
}
}

然后在你的代码上写下

 sha1 = Sha1.SHA1(email);