手写SHA1加密算法(Java版)

   日期:2020-04-29     浏览:162    评论:0    
核心提示:开发微信公众号过程中,需要使用sha1加密算法与微信api对接,特此学习下sha1算法的实现。1:安java

开发微信公众号过程中,需要使用sha1加密算法与微信api对接,特此学习下sha1算法的实现。

1:安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。

2:1byte等于二进制8位,则分成高四位和第四位进行加密解析。由于15在二进制中表示为"00001111",则和15低四位与(&)运算,运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;
代码如下:

    //sha1加密
	private static String sha1(String src) {
		try {
			//获取加密对象
			MessageDigest md = MessageDigest.getInstance("sha1");
			//加密
			byte[] digest = md.digest(src.getBytes());
			//sha1加密后结果只能是如下数组的数值
			char[] chars = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
			//拼接加密后的字符串
			StringBuffer sb = new StringBuffer();
			//处理加密结果
			for (byte b : digest) {
				//1byte代表8位(二进制),分别对高四位和低四位进行与运算,得到chas对应的数值
				sb.append(chars[(b>>4)&15]);
				sb.append(chars[b&15]);
			}
			return sb.toString();
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服