本文用示例介绍使用对密码进行加密的算法:bcrypt。
bcrypt是一种自带盐值(自动加盐)的加密方案。
注意
对于同一个密码,每次生成的hash是不同的hash中包含了saltpom.xml加入如下依赖:
<dependency> <groupid>org.mindrot</groupid> <artifactid>jbcrypt</artifactid> <version>0.4</version></dependency>
总的pom.xml:
<?xml version="1.0" encoding="utf-8"?><project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="/d/file/titlepic/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> dnf连接失败<version>2.3.0.relea</version> <relativepath/> <!-- lookup parent from repository --> </parent> <groupid>com.example</groupid> <artifactid>demo_springboot</artifactid> <version>0.0.1-snapshot</version> <name>demo_springboot</name> <description>demo project for spring boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <dependency> <groupid>org.mindrot</groupid> <artifactid>jbcrypt</artifactid> <version>0.4</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-maven-plugin</artifactid> 去下眼袋 <version>2.3.0.relea</version> </plugin> </plugins> 历史教师资格证 </build> </project>
package com.example.controller; import org.mindrot.jbcrypt.bcrypt;import org.springframework.web.bind.annotation.getmapping;import org.springframework.web.bind.annotation.restcontroller; @restcontrollerpublic class hellocontroller { @getmapping("/test") public string test() { string password = "123456"; // 加密 string encodedpassword = bcrypt.hashpw(password, bcrypt.gensalt()); system.out.println(encodedpassword); // 使用正确密码验证密码是否正确 boolean flag = bcrypt.checkpw(password, encodedpassword); system.out.println(flag); // 使用错误密码验证密码是否正确 flag = bcrypt.checkpw("111222", encodedpassword); system.out.println(flag); system.out.println("-------------------------------------------"); return "test success"; }}
访问:http://localhost:8080/test/
多次访问后的后端结果:
$2a$10$63i66gocxnciufbhezcbf.luba45jcfwatvxz7mtzp7bpd绍兴县实验小学n.sqmsg
true
fal
————双曲线实轴——————————-
$2a$10$cv7it/tpzvx23idevmhhlersnippi2n/s..cl9bd50v2lfdff1woa
true
fal
——————————————-
$2a$10$wntnhuedcx0inkaflqwm0o9m163wrr/rcgldbsfhrgzjqubzoeeeg
true
fal
——————————————-
示例密文:
$2a$10$cv7it/tpzvx23idevmhhlersnippi2n/s..cl9bd50v2lfdff1woa
$:分割符,无意义;
2a:bcrypt加密版本号;
10:cost的值(默认值);
之后的22位:salt值;
之后:密码的密文
到此这篇关于java使用bcrypt实现对密码加密效果详解的文章就介绍到这了,更多相关java bcrypt密码加密内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-06 04:10:45,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/99836a0e559cdf417995c8a3bea40b1c.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Java使用bcrypt实现对密码加密效果详解.doc
本文 PDF 下载地址:Java使用bcrypt实现对密码加密效果详解.pdf
留言与评论(共有 0 条评论) |