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蓝牙驱动更新修复【详解】

