我正在创建一个将请求发送到服务器的黑莓应用程序。因此需要对用户进行身份验证。所以为了做到这一点,我想在黑莓中使用SHA1加密UserID和密码。然后,使用用户ID和密码上的SHA1算法生成的加密数据将传递给服务器。
我的问题是如何实现这一点。有人可以提供示例代码,以便在黑莓手机中实现这一点。
答案 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);