sha-256算法进行加密java,Java SHA-256加密的两种实现方法详解

这篇文章主要介绍了Java SHA-256加密的两种实现方法,结合实例形式分析了java实现SHA-256加密的实现代码与相关注意事项,需要的朋友可以参考下

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

最近在做的项目中涉及到了数据脱敏,要对某些数据进行加密,调查中了解到SHA-256加密。学习了下,引用两种方法供后面参考:

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

maven:

commons-codec

commons-codec

${common-codec.version}

实现代码:

/***

* 利用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

temp = Integer.toHexString(bytes[i] & 0xFF);

if (temp.length()==1){

//1得到一位的进行补0操作

stringBuffer.append("0");

}

stringBuffer.append(temp);

}

return stringBuffer.toString();

}

算法详解:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何高效完成ECS多环境部署?

简介:通过本文,你可以了解到,如何通过云效流水线有效拉通开发与运维,打破二者之间的壁垒墙,让开发与运维高效联动。在软件开发和部署过程中,我们的软件往往需要在不同的运行环境中运行,例如&…

技术探秘: 360数科夺得ICDAR OCR竞赛世界第一

ICDAR(国际文档分析与识别会议)是OCR识别领域最权威的会议之一。近期,360数科在ICDAR2019-SROIE(Results - ICDAR 2019 Robust Reading Challenge on Scanned Receipts OCR and Information Extraction - Robust Reading Competition) 榜单上…

云原生时代,软件交付有何不同 | 研发效能提升36计

简介:从今天起,我们将开启一个新的专栏:《研发效能提升36计_持续交付篇》。专栏将通过10-20篇文章,系统分享云原生时代,企业如何落地持续交付。 编者按:从今天起,我们将开启一个新的专栏&#…

php 获取字符串完整拼音,PHP 获取中文字符串的首字符拼音字母

class"php"><?php header(Content-Type: text/html; charsetutf-8);$str"阅谁问君诵&#xff0c;水落清香浮";echo getFirstCharCode($str);function getFirstCharCode($str){$str iconv("UTF-8","gb2312", $str);$targetChar*…

IT人的年夜饭,也太香了吧

简介&#xff1a; 平时的IT人&#xff0c;奋战在修复bug前线&#xff0c;起早与贪黑齐飞&#xff0c;调休共假期待定。到了新春佳节&#xff0c;对于IT人来说&#xff0c;没有什么是比一顿年夜饭更让人熨贴肺腑的了。为了让废寝忘食编程序、闻机起早保运维的IT人过一个安稳的好…

通过将工作负载从虚拟机迁移到容器的数据保护转变,Veeam和Kasten K10 by Veeam推动Zenseact加速自动驾驶创新

2022年6月22日&#xff1a;VeeamSoftware&#xff08;卫盟软件&#xff09;&#xff0c;提供现代数据保护的备份、恢复和数据管理解决方案的领导者&#xff0c;今天宣布Zenseact正在使用Veeam Availability Suite™和Kasten K10 by Veeam提供可靠的数据备份、保护和灾难恢复解决…

小红书消息中间件的运维实践与治理之路

简介&#xff1a;近年来&#xff0c;消息领域的全面云原生化逐渐走向深入&#xff0c;比如 RocketMQ 5.0 版本的存算分离设计和 raft 模式&#xff0c;再比如 Kafka3.0 引入了分层设计的方式&#xff08;tiered storage&#xff09;和 raft 模式&#xff0c;以及近年来新崛起的…

oracle list 分区详解,oracle的List分区及分区索引

最近在做的一个项目&#xff0c;由于涉及到数据量会在半年内破千万条&#xff0c;考虑到数据量比较大&#xff0c;日后查询起来会比较费时&#xff0c;所以考虑使用oracle的分区特性。oracle10g产品中的分区表分为List&#xff0c;hash&#xff0c;range三个。经过分析&#xf…

爆测一周,22年必看最细致代码托管工具测评

简介&#xff1a;网上代码托管选型的文章不少&#xff0c;不过大多内容有点久远&#xff0c;很多最新的平台没有包括进来&#xff0c;个人花了大概一个星期的时间&#xff0c;把目前市面上比较火的代码托管平台&#xff08;开源托管平台&#xff1a;Github、Gitee&#xff1b;企…

read 文件一个字节实际会发生多大的磁盘IO?

作者 | 张彦飞allen来源 | 开发内功修炼在日常开发中一些看似司空见惯的问题上&#xff0c;我觉得可能大多数人其实并没有真正理解&#xff0c;或者理解的不够透彻。不信我们来看以下一段简单的读取文件的代码&#xff1a;上图中的代码仅仅只是对某个文件读取了一个字节&#x…

【指标需求思考】如何做好指标类需求建设

简介&#xff1a;大家一直所说的【需求】究竟有哪些&#xff1f;用户需求、业务需求、系统需求...... 但是今天我要给大家介绍一种我自认为一种别出心裁的需求&#xff01;【指标类需求】在庞大的需求体系里&#xff0c;一个完整的系统设计流程是非常必要的&#xff0c;好则效率…

oracle 12c 低版本,oracle高版本迁移数据到低版本(12c至11g)方法

1.12c版本信息&#xff1a;2.11g版本信息&#xff1a;3.查看12c的字符集编码&#xff1a;select userenv(language) from dual;要迁移的两个数据库字符集编码要保持一致。如果不一致请手工修改&#xff0c;修改方法另行百度。4.查看11g数据库字符集编码&#xff1a;5.查看12c数…

构建信创产业生态,移动云立足全栈自主创新连放大招

信创&#xff0c;即信息技术应用创新&#xff0c;它是数据安全、网络安全的基础&#xff0c;也是“新基建”的重要内容。在国际信息安全形势严峻、国家安全需要和数智时代新要求三重因素作用下&#xff0c;信创生态应运而生。进入2022年&#xff0c;云计算将成为信创主要落地方…

游戏行业搜索实践

简介&#xff1a;本文通过游戏行业客户案例带大家了解游戏内容&#xff0c;游戏论坛等场景搜索特性&#xff0c;以及如何通过开放搜索游戏增强版解决方案轻松快速接入,实现高质量搜索效果,提升业务指标和用户体验。 客户背景 国内知名的文化社区和视频平台&#xff0c;其游戏…

序列特征在推荐算法中的应用

简介&#xff1a;行为序列特征在推荐&#xff0c;广告等领域中有着广泛应用&#xff0c;最近几年涌现了很多有关行为序列的研究论文&#xff0c;讲解如何将行为序列应用到实际场景中。但是论文中的实际思想距离落地还有一段距离&#xff0c;因此本文先介绍一些论文中的序列特征…

oracle 12c pl/sql语言,ORACLE 12C SQL语句中通过with 定义PL/SQL 函数

在ORACLE 12C支持在sql语句中编写函数,用来实现sql语句操作需要使用函数的部分功能,该功能对于你不想在数据库中新建函数 or 你的库是read only模式下要使用新函数实现某种功能,可以通过这种方法实现,增加了ORACLE数据库灵活点SQL> select * from v$version;BANNER CON_ID--…

BlackBerry 软件全球现已部署超过2.15亿辆汽车

BlackBerry近日宣布&#xff0c;据知名独立调研公司Strategy Analytics统计&#xff0c;目前全球已有超过2.15亿辆汽车搭载BlackBerry QNX软件&#xff0c;较2021年增加了2,000万辆。 作为获得安全认证的嵌入式汽车软件市场领导者&#xff0c;BlackBerry深受众多业内汽车制造商…

从托管到原生,MPP架构数据仓库的云原生实践

简介&#xff1a;本文介绍了云原生数据仓库产品AnalyticDB PostgreSQL从Cloud-Hosted到Cloud-Native的演进探索&#xff0c;探讨为了实现真正的资源池化和灵活售卖的底层设计和思考&#xff0c;涵盖内容包括产品的架构设计&#xff0c;关键技术&#xff0c;性能结果&#xff0c…

做到这4点,才是真正的持续交付| 研发效能提升36计

简介&#xff1a;全线专栏《研发效能提升36计_持续交付篇》上线啦&#xff01;本专栏将通过10-20篇文章&#xff0c;系统分享云原生时代&#xff0c;企业如何落地持续交付。本文是该专栏的第2篇。 什么是真正的持续交付&#xff1f; 编者按&#xff1a;全线专栏《研发效能提升…

oracle打patch,Oracle初学者入门指南-How to get Oracle Patch?

Oracle初学者入门指南-How to get Oracle Patch?怎样获得/找到Oracle的Patch&#xff0c;这是一个朋友在Itpub上问到的问题。他还举了一个生动的例子:比如我要使用oracle的全文检索功能&#xff0c;但是这个全文检索在9201里不支持中文&#xff0c;中文的无法检索&#xff0c;…