为了账号安全,请及时绑定邮箱和手机立即绑定

用SHA1加密后一直返回null

public static String getSha1(String str){

if(str == null || str.length() == 0){

return null;

}

System.out.println(str);

char hexDigits[] = {'1','2','3','4','5','6','7','8','9','a','b','c',

'd','e','f'};

try {

MessageDigest mdTemp = MessageDigest.getInstance("SHA-1");

mdTemp.update(str.getBytes("UTF-8"));

byte[] md = mdTemp.digest();

int j = md.length;

char buf[] = new char[j * 2];

int k = 0;

for(int i = 0;i<j;i++){

byte byte0 = md[i];

buf[k++] = hexDigits[byte0 >>> 4 & 0xf];

buf[k++] = hexDigits[byte0 & 0xf];

}

return new String(buf);

}catch (Exception e) {

return null;

}

}


正在回答

3 回答

char hexDigits[] = {'1','2','3','4','5','6','7','8','9','a','b','c',

'd','e','f'};

中掉了一个0  所以会发生数组下标越界,所以直接return null;

1 回复 有任何疑惑可以回复我~

MessageDigest mdTemp = MessageDigest.getInstance("SHA-1");我看到老师写的是"SHA1"

0 回复 有任何疑惑可以回复我~

在return new String(buf);之前用输出语句输出new String(buf)的内容,看看是什么

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Java微信公众号开发
  • 参与学习       158312    人
  • 解答问题       684    个

Java微信公众号开发的入门教程,掌握微信公众号基本概念

进入课程

用SHA1加密后一直返回null

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号