HMacSHA256加密算法的实现
由于是第一次上写博客,所以我先上代码,具体的原理和一些理论知识也没有具体,以后慢慢的补上;以前的时候只接触过MD5算法的,现在我就来把Java中的一些常用的算法来总结一下,下面也介绍的是HMACSHA25算法
Java代码:
- 加密算法的核心代码:
public static String HMACSHA256(byte[] data, byte[] key)
{
try {
SecretKeySpec signingKey = new SecretKeySpec(key, "HmacSHA256");
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(signingKey);
return byte2hex(mac.doFinal(data));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
}
return null;
}
- 然后我们需要将加密后的字节数组转换成字符串
public static String byte2hex(byte[] b)
{
StringBuilder hs = new StringBuilder();
String stmp;
for (int n = 0; b!=null && n < b.length; n++) {
stmp = Integer.toHexString(b[n] & 0XFF);
if (stmp.length() == 1)
hs.append('0');
hs.append(stmp);
}
return hs.toString().toUpperCase();
}
接下来我们就来测试一下我们所写的加密算法与网站上的加密算法是否是一致的了。我们设置一下要加密的内容和密码:Content:123456,Password:12345678;加密后的数据是:接下来的话,我们可以上在线加密网站看看我们刚才的是否一样?这里我推荐一个加密网站:http://tool.oschina.net/encrypt?type=2,具体自己上去试试。刚才加密后的内容也公布一下,看看大家加密后的是不是与我的一样;AB6B3243E426F8352B45B4154711ACA13B7F3DC509E8FE65D6911E94ADCC365D,
由于是第一次写博客,而且时间也比较仓促,所以内容比较渐渐淡;因为第一次用makrdown所以各种排版和格式也不如意,不好的地方还请大家多多提意见。随着学习的慢慢深入,我也会慢慢的把知识点写的更加的学习。