SHA安全加密标准,是至今世界上使用最广泛且安全的压缩算法之一,随着密码学研究的不断深入和计算机技术的快速发展,SHA-256算法得到全面推广应用。

java代码实现:

package com.caojiulu;import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;public class Main {public static void main(String[] args) {}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;}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();}public static String encodeBySHA256(String str) {if (str == null) {return null;}try {MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");messageDigest.reset();messageDigest.update(str.getBytes());return getFormattedText(messageDigest.digest());} catch (Exception e) {return "";}}private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd','e', 'f' };private static String getFormattedText(byte[] bytes) {int len = bytes.length;StringBuilder buf = new StringBuilder(len * 2);// 把密文转换成十六进制的字符串形式for (int j = 0; j < len; j++) {buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);buf.append(HEX_DIGITS[bytes[j] & 0x0f]);}return buf.toString();}}

SHA-256 算法-java实现相关推荐

  1. SHA 256算法是什么?哈希算法有哪些特点,主要应用在哪里?

    无论数字证书品牌.价格和类型如何,所有SSL证书的通用规范是采用SHA 256算法,您可以在证书详细信息或产品信息中列出的功能中看到.对于非技术人员来说,SHA 256 算法通常是个谜,但是锐成信息将 ...

  2. 什么是SHA系列算法,SHA-1和MD5算法有什么区别

    有些朋友在研究微信支付接口的时候,发现它们不仅支持MD5摘要的验签,还支持SHA-256摘要.那么这个SHA是什么呢?别着急,本文将和大家说一说什么是SHA系列算法,SHA这么多版本之间有什么不同,以 ...

  3. 推特雪花算法 java实现

    2019独角兽企业重金招聘Python工程师标准>>> package twiter.snowflake;/*** twitter的snowflake算法 -- java实现*/ p ...

  4. java dh算法_dh密钥交换算法java

    dh密钥交换算法java 迪菲-赫尔曼密钥交换(Diffie–Hellman key exchange,简称"D–H") 是一种安全协议. 它可以让双方在完全没有对方任何预先信息的 ...

  5. 数据结构和算法(Java)-张晨光-专题视频课程

    数据结构和算法(Java)-579人已学习 课程介绍         如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的 ...

  6. floyed java_Floyd算法java实现demo

    Floyd算法java实现,如下: package a; /** * ┏┓ ┏┓+ + * ┏┛┻━━━┛┻┓ + + * ┃ ┃ * ┃ ━ ┃ ++ + + + * ████━████ ┃+ * ...

  7. 快速排序算法 java 实现

    快速排序算法 java 实现 快速排序算法Java实现 白话经典算法系列之六 快速排序 快速搞定 各种排序算法的分析及java实现 算法概念 快速排序是C.R.A.Hoare于1962年提出的一种划分 ...

  8. java 哈希一致算法_一致哈希算法Java实现

    一致哈希算法(Consistent Hashing Algorithms)是一个分布式系统中常用的算法.传统的Hash算法当槽位(Slot)增减时,面临所有数据重新部署的问题,而一致哈希算法确可以保证 ...

  9. java进程调度怎么画图,[Java教程]进程调度的两种算法JAVA实现

    [Java教程]进程调度的两种算法JAVA实现 0 2015-10-21 12:00:08 (SJF分为preemptive shortest job first(抢占式)和non-preemptiv ...

  10. LRU算法java实现

    LRU全称是Least Recently Used,即最近最久未使用的意思. LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小.也就是说,当限定的空间已 ...

最新文章

  1. 功能实现了软件就做好了吗?
  2. 混合云数据中心运维的管理
  3. C++11:内联命名空间,无缝升级库代码
  4. 脚本必须位于html的,js 前端第三剑客
  5. C语言简单题-找最大的字符串
  6. JBoss 4.x 5.x 6.xJBossMQ JMS 反序列化漏洞
  7. Python学习笔记_文件读写,目录遍历类封装
  8. JSP内置对象及其常用方法
  9. 基于时间窗的AGV调度算法优化
  10. 立体几何相关公式推导理解(球体、台体体积)
  11. 推荐10本必读的心理学书籍
  12. 洛谷P1878 舞蹈课 贪心 堆
  13. android微信支付指纹支付密码错误,安卓微信支付怎么设置指纹锁
  14. 2.Java再识:使用MyEclipse开发java程序
  15. 读书笔记:软件工程(1) - 软件工程概述(1)
  16. Unity 2017+提取模型材质
  17. gsyVideoPlayer点击/拖动进度条播放视频会回退
  18. eclipse安装angularjs
  19. Breakpoint is not hit
  20. bandgap基本知识(转载)

热门文章

  1. Linux——基于GPU的超低延迟远程桌面Parsec
  2. 计算机图形与OpenGL学习五(二维几何变换1.平移、旋转、缩放)
  3. LATEX公式下标短横线过长
  4. 2018年家用计算机推荐,家用激光打印机2018推荐 这几款性价比不错
  5. 奔图P3022D黑白激光打印机 评测
  6. 快来,看看spring有多烂-来自jfinaL的嘲笑
  7. 删除数组中的重复项(保留最后一次出现的重复元素并保证数组的原有顺序)
  8. Canvas响应 -岛岛还存活在代码的第79天-
  9. 低频能不能采到高频?采样定理指导硬件设计
  10. React 中 Twitter 的 SVG 图标 (icons)