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的作用与实践

