Java HMAC-SHA1加密算法的实现
**摘 要:**HMAC-SHA1是一种安全的基于加密 hash函数和共享密钥的消息认证协议,它可以有效地防止数据在传输的过程中被截取和篡改,维护了数据的完整性、可靠性和安全性。HMAC-SHA1消息认证机制的成功在于一个加密的 hash函数、一个加密的随机密钥和一个安全的密钥交换机制。本博客目前不涉及其加密的数学知识,也不涉及到其中的加密原理,只是实现了Java语言实现加密的方式。随着以后知识的深入,再继续的补充过来。
- Java 加密代码:
public static String hamcsha1(byte[] data, byte[] key)
{try {SecretKeySpec signingKey = new SecretKeySpec(key, "HmacSHA1");Mac mac = Mac.getInstance("HmacSHA1");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();
}
最后当我们写好了代码之后还需要测试一下我们加密代码是否正确,这里我这是设置加密内容位:123456,加密的密钥为:12345678,最后得到的加密结果是:8fcfc2d7e51f5b502ad1b2270e885e29a7bb81df,然后我们跟在线加密网站(http://encode.chahuo.com/)上加密后的内容进行比对一下,看看我们的加密结果是否和网站的一样。
Java HMAC-SHA1加密算法的实现相关推荐
- SHA1加密算法(java实现)
SHA1加密算法 SHA是一种数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,现在已成为公认的最安全的散列算法之一,并被广泛使用.该算法的思想是接收一段明文,然后以一种不可逆的方式将它转 ...
- java sha1_java使用SHA1加密算法详解
java使用SHA1加密算法程序源码: //下面四个import放在类名前面 包名后面 import java.io.UnsupportedEncodingException; import java ...
- 手写SHA1加密算法(Java版)
开发微信公众号过程中,需要使用sha1加密算法与微信api对接,特此学习下sha1算法的实现. 1:安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital ...
- java中各种加密算法的实践应用
1.前言 数字签名.信息加密是前后端开发都经常需要使用到的技术,应用场景包括了用户登入.交易.信息通讯.oauth 等等,不同的应用场景也会需要使用到不同的签名加密算法,或者需要搭配不一样的签名加密算 ...
- java 常用的加密算法及分类
1.加密算法分类: 按照是否需要key加密解密分类: 不需要key的加密:Base64加密,MD5,SHA1,SHA256 需要key的加密:对称加密算法(AES,DES,3DES) 非对称加密算法( ...
- 7、SHA1加密算法
SHA1加密算法 SHA是一种数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,现在已成为公认的最安全的散列算法之一,并被广泛使用.该算法的思想是接收一段明文,然后以一种不可逆的方式将它转 ...
- iOS sha1加密算法
最近在项目中使用到了网络请求签名认证的方法,于是在网上找关于OC sha1加密的方法,很快找到了一个大众使用的封装好的方法,以下代码便是 首先需要添加头文件 #import<CommonCryp ...
- C语言hmacsha1,在C中执行hmac sha1
我正在尝试生成Hmac-sha1的一小段代码.我被要求使用用于SHA1计算的OpenSSL库自己编码hmac实现. 后"wiki'ing的算法,这里是我有什么below.I已经使用的输入与R ...
- python实现sha1加密算法
本文主要记录一下 python实现sha1的封装过程. 目录 一.程序源码 二.调用测试 一.程序源码 """ 使用sha1加密算法,返回str加密后的字符串 " ...
- JAVA:实现AES 加密算法(附完整源码)
JAVA:实现AES 加密算法 package com.thealgorithms.ciphers;import javax.crypto.*; import java.security.Invali ...
最新文章
- (转)Sublime Text2 快捷键汇总
- 大数据处理过程中,如何让Hadoop运行得更快一些?
- 前端工程化系列[02]-Grunt构建工具的基本使用
- Google 翻译的妙用
- LeetCode Arranging Coins
- eclipse开发java程序,断点调试
- 在python中使用关键字define定义函数_python等价于'define func()'或如何在python中注释掉函数调用...
- atcoder 076
- 原理图中如何连线_Altium Designer10绘制原理图
- Luogu1456 Monkey King
- 在wps里面怎么设置触发器_wps触发器怎么设置
- 【文摘】《创新者》-沃尔特·艾萨克森
- 为什么搜狗输入法显示服务器异常,为什么搜狗拼音输入法一直出现错误报告?...
- 淘宝为什么放弃SpringCloud、Dubbo,选择了这个牛逼的神仙框架!贼爽
- Java计算某年某月天数_编程计算某年某月某日是该年的第多少天。例如:2016年3月2日是2016的 第62 天。(java)...
- HTML的表单及框架
- Android中的占位符
- 28岁华为员工工资表曝光,牛逼的人注定会牛逼
- python ——时间间隔
- P9:最大池化的使用