Java SHA-256加密的两种实现方法详解

发布时间 - 2026-01-11 03:00:53    点击率:

本文实例讲述了Java SHA-256加密的两种实现方法。分享给大家供大家参考,具体如下:

最近在做注册的一个功能,密码要进行加密,一开始想用MD5加密,但是听说被破解了已经,于是想玩玩SHA-256加密。学习了下,总结两种方法供后面参考:

1、利用Apache的工具类实现加密:

maven:

<dependency>
 <groupId>commons-codec</groupId>
 <artifactId>commons-codec</artifactId>
 <version>${common-codec.version}</version>
</dependency>

实现代码:

/***
* 利用Apache的工具类实现SHA-256加密
* @param str 加密后的报文
* @return
*/
public static String getSHA256Str(String str){
 MessageDigest messageDigest;
 String encdeStr = "";
 try {
  messageDigest = MessageDigest.getInstance("SHA-256");
  byte[] hash = messageDigest.digest(str.getBytes("UTF-8"));
  encdeStr = Hex.encodeHexString(hash);
 } catch (NoSuchAlgorithmException e) {
  e.printStackTrace();
 } catch (UnsupportedEncodingException e) {
  e.printStackTrace();
 }
 return encdeStr;
}

2、利用Java自带的实现加密:

/**
* 利用java原生的摘要实现SHA256加密
* @param str 加密后的报文
* @return
*/
public static String getSHA256StrJava(String str){
 MessageDigest messageDigest;
 String encodeStr = "";
 try {
  messageDigest = MessageDigest.getInstance("SHA-256");
  messageDigest.update(str.getBytes("UTF-8"));
  encodeStr = byte2Hex(messageDigest.digest());
 } catch (NoSuchAlgorithmException e) {
  e.printStackTrace();
 } catch (UnsupportedEncodingException e) {
  e.printStackTrace();
 }
 return encodeStr;
}
/**
* 将byte转为16进制
* @param bytes
* @return
*/
private static String byte2Hex(byte[] bytes){
 StringBuffer stringBuffer = new StringBuffer();
 String temp = null;
 for (int i=0;i<bytes.length;i++){
  temp = Integer.toHexString(bytes[i] & 0xFF);
  if (temp.length()==1){
  //1得到一位的进行补0操作
  stringBuffer.append("0");
  }
  stringBuffer.append(temp);
 }
 return stringBuffer.toString();
}

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

在线SHA1加密工具:
http://tools./password/sha1encode

文字在线加密解密工具(包含AES、DES、RC4等):
http://tools./password/txt_encode

在线散列/哈希算法加密工具:
http://tools./password/hash_encrypt

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools./password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools./password/sha_encode

更多关于java相关内容感兴趣的读者可查看本站专题:《Java数学运算技巧总结》、《Java数据结构与算法教程》、《Java字符与字符串操作技巧总结》、《Java操作DOM节点技巧总结》和《Java数组操作技巧总结》

希望本文所述对大家java程序设计有所帮助。


# Java  # SHA-256  # 加密  # Java实现SHA-256加密算法的完全解析  # Java中实现 SHA-256加密的两种方式  # 加密工具  # 两种  # 感兴趣  # 操作技巧  # 加密解密  # 相关内容  # 还可以  # 数据结构  # 给大家  # 自带  # 更多关于  # 想用  # 所述  # 程序设计  # 讲述了  # return  # str  # param  # String  # static 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  黑客如何通过漏洞一步步攻陷网站服务器?  JavaScript中的标签模板是什么_它如何扩展字符串功能  米侠浏览器网页背景异常怎么办 米侠显示修复  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  教你用AI将一段旋律扩展成一首完整的曲子  如何快速搭建安全的FTP站点?  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  Linux系统命令中tree命令详解  如何为不同团队 ID 动态生成多个“认领值班”按钮  如何快速建站并高效导出源代码?  Python面向对象测试方法_mock解析【教程】  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  Laravel如何使用模型观察者?(Observer代码示例)  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  微信小程序 input输入框控件详解及实例(多种示例)  详解阿里云nginx服务器多站点的配置  手机网站制作与建设方案,手机网站如何建设?  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  如何在香港服务器上快速搭建免备案网站?  教学论文网站制作软件有哪些,写论文用什么软件 ?  如何快速生成ASP一键建站模板并优化安全性?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  如何用y主机助手快速搭建网站?  如何在云虚拟主机上快速搭建个人网站?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  Laravel如何创建自定义Facades?(详细步骤)  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel集合Collection怎么用_Laravel集合常用函数详解  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  EditPlus中的正则表达式实战(6)  jQuery 常见小例汇总  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  如何在腾讯云服务器快速搭建个人网站?  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  打造顶配客厅影院,这份100寸电视推荐名单请查收  Laravel如何实现事件和监听器?(Event & Listener实战)  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践