SHA:Secure Hash Algorithm
安全散列算法
文章图片
与MD5算法极为相似。
长度不超过2^64位的字符串或二进制流,经过SHA-1编码后,生成一个160位的二进制串。
SHA-1算法也与MD5类似,都是把输入二进制串分成512位的块,把二进制串的位数存储在最后64位,二者之间填充为0,依次对每个块进行一些列高深的数学运算,最后得到一个160位的二进制串。
通常表示为40个十六进制数字。
【Java|SHA算法简介】
例:
SHA-1("")=da39a3ee5e6b4b0d3255bfef95601890afd80709
SHA-1("hello world!")=430ce34d020724ed75a196dfc2ad67c77772d169
SHA算法也是不可逆的。
从SHA-1的算法可以简单看出,SHA-1安全性比MD5稍高(160位VS128位),但算法需要时间SHA-1稍慢。
在Java中可以简单地通过引用commons-codec来取得sha-1。
import org.apache.commons.codec.digest.DigestUtils;
public class SHA1Test {
public static void main(String[] args) {
String sha1 = DigestUtils.sha1Hex("");
System.out.println(": " + sha1);
sha1 = DigestUtils.sha1Hex("hello world!");
System.out.println("hello world!: " + sha1);
}
}
参考: http://zh.wikipedia.org/wiki/SHA%E5%AE%B6%E6%97%8F
推荐阅读
- LeetCode|LeetCode 432. 全 O(1) 的数据结构(双向链表+哈希表) / 720. 词典中最长的单词 / 2043. 简易银行系统
- JVM|JVM--基础--20--对象的创建过程
- 后端开发|Springboot实现上传文件以及文件实时预览(包括图片预览,视频预览)
- java|spring Security配置拦截规则
- 笔记|JavaSE基础语法--傻瓜笔记--1009(第二章:IDE的使用——标识符)
- 06_Springboot|Spring AOP 介绍与简单日志切面实现
- 蓝桥杯练习|试题 算法训练 台阶问题
- Spring源码逻辑|Spring01 -- 启动和扫描逻辑模拟
- JAVA基础|Lambda从入门到精通(一篇搞懂)