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 Auth门面获取用户ID  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  如何实现建站之星域名转发设置?  javascript如何操作浏览器历史记录_怎样实现无刷新导航  如何在 Pandas 中基于一列条件计算另一列的分组均值  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  Laravel如何使用Vite进行前端资源打包?(配置示例)  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  如何自定义建站之星模板颜色并下载新样式?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  Laravel集合Collection怎么用_Laravel集合常用函数详解  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  如何快速查询域名建站关键信息?  原生JS获取元素集合的子元素宽度实例  如何用景安虚拟主机手机版绑定域名建站?  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  如何在IIS7上新建站点并设置安全权限?  JS去除重复并统计数量的实现方法  Linux网络带宽限制_tc配置实践解析【教程】  如何用5美元大硬盘VPS安全高效搭建个人网站?  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  如何实现javascript表单验证_正则表达式有哪些实用技巧  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  js实现获取鼠标当前的位置  JavaScript如何操作视频_媒体API怎么控制播放  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  Laravel如何配置和使用缓存?(Redis代码示例)  如何在七牛云存储上搭建网站并设置自定义域名?  昵图网官网入口 昵图网素材平台官方入口  QQ浏览器网页版登录入口 个人中心在线进入  深圳网站制作平台,深圳市做网站好的公司有哪些?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  Bootstrap CSS布局之列表  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  jQuery validate插件功能与用法详解  中山网站推广排名,中山信息港登录入口?  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  Laravel Fortify是什么,和Jetstream有什么关系  Laravel如何集成Inertia.js与Vue/React?(安装配置)  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】