java HmacSHA1 计算

java HmacSHA1 计算此处使用 SecretKeySpe 构造 key 用 Mac 对象初始化构造的 key 对象 MAC 算法主要集合了 MD 和 SHA 两大系列消息摘要算法 MD 系列的算法有 HmacMD2 HmacMD4 HmacMD5 三种算法 SHA 系列的算法有 HmacSHA1 HmacSHA224 HmacSHA256 HmacSHA384 HmacSHA512 五种算法 hmac 签名算法

此处使用SecretKeySpec 构造 key,用Mac对象初始化构造的key对象,

/ * hmac+签名算法 加密 * @param content 内容 * @param charset 字符编码 * @param key 加密秘钥 * @param hamaAlgorithm hamc签名算法名称:例如HmacMD5,HmacSHA1,HmacSHA256 * @return */ public static String getHmacSign(String content, String charset,String key,String hamaAlgorithm){ byte[] result = null; try { //根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称 SecretKeySpec signinKey = new SecretKeySpec(key.getBytes(), hamaAlgorithm); //生成一个指定 Mac 算法 的 Mac 对象 Mac mac = Mac.getInstance(hamaAlgorithm); //用给定密钥初始化 Mac 对象 mac.init(signinKey); //完成 Mac 操作 byte[] rawHmac; rawHmac = mac.doFinal(content.getBytes(charset)); result = Base64.encodeBase64(rawHmac); } catch (NoSuchAlgorithmException e) { System.err.println(e.getMessage()); } catch (InvalidKeyException e) { System.err.println(e.getMessage()); } catch (IllegalStateException | UnsupportedEncodingException e) { System.err.println(e.getMessage()); } if (null != result) { return new String(result); } else { return null; } } public static void main(String[] args) { String hmacSign = getHmacSign("testjoiaj", "UTF-8", "gail", "HmacMD5"); String hmacSign2 = getHmacSign("testjoiaj", "UTF-8", "gail", "HmacSHA1"); String hmacSign3 = getHmacSign("testjoiaj", "UTF-8", "gail", "HmacSHA256"); System.out.println(hmacSign); System.out.println(hmacSign2); System.out.println(hmacSign3); }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232237.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 服务器显示asp错误,Windows7 IIS+ASP http500内部服务器错误(显示它的本来面目)

    服务器显示asp错误,Windows7 IIS+ASP http500内部服务器错误(显示它的本来面目)在WINDOWS7上安装了iis7.5,调试ASP程序时出现http500内部服务器错误:首先,打开IE选项设置—高级—把“显示友好http错误信息”,可以看到如下错误提示:解决办法是打开将错误送到浏览器”changedthedefaultforthe”scriptErrorSentToBrowser”flaginIIS7”,将选项设置为True.设置方法一:以管理员身份运行CM…

    2022年8月12日
    6
  • 编写java程序打印菱形_java菱形代码

    编写java程序打印菱形_java菱形代码importjava.util.Scanner;publicclass打印菱形{publicstaticvoidmain(String[]args){/**菱形**************************/ScannerinputScanner=newScanner(System.in);System.out.prin…importjava.util.Scanner;publicc…

    2022年9月29日
    3
  • php图片加水印(华为关水印)

    很多站长朋友们都知道,Phpcmsv9有自带的水印功能。今天无忧主机小编在给一个朋友修改网站时,询问小编能否把Phpcmsv9自带的水印功能去掉呢,因为有时候在编辑器中上传图片时,不希望上传的图片被自动加上phpcmsv9自带的水印。无忧主机小编分析:既然是程序中的功能,那么就一定有一段代码控制着这个功能。通过进一步的查找资料,小编找得到了这个功能所在的文件以及相应的控制代码。下面无忧主机小编…

    2022年4月12日
    40
  • goland20.2激活码【在线注册码/序列号/破解码】

    goland20.2激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    50
  • 风控模型评价指标总结

    风控模型评价指标总结    下表为我在日常建模过程中,评价模型经常用到的一些指标。现在整理出来分享给大家,如果大家想知道每种指标的具体意义,还请大家查阅相关大佬的博文。小弟就不在这里班门弄斧了。…

    2022年5月27日
    36
  • spss logistic回归分析结果如何分析

    spss logistic回归分析结果如何分析spsslogistic回归分析结果如何分析如何用spss17.0进行二元和多元logistic回归分析一、二元logistic回归分析二元logistic回归分析的前提为因变量是可以转化为0、1的二分变量,如:死亡或者生存,男性或者女性,有或无,Yes或No,是或否的情况。下面以医学中不同类型脑梗塞与年龄和性别之间的相互关系来进行二元logistic回归分析。(一…

    2025年7月2日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号