密码加密的方式选型有哪些 密码安全加密方法选择有哪些?
密码加密的方式选型有哪些
一篇方法教程,与您分享密码加密的方式选型有哪些的介绍,接下来IT袋网小编为大家介绍。
MD5密码加密

//md5加密 DegestUtils:spring框架提供的工具类
String md5Str = DigestUtils.md5DigestAsHex("abc".getBytes());
System.out.println(md5Str);//900150983cd24fb0d6963f7d28e17f72
md5相同的密码每次加密都一样,不太安全
手动加密(md5+随机字符串)
在md5的基础上手动加盐(salt)处理
//uername:zhangsan password:123 salt:随时字符串
String salt = RandomStringUtils.randomAlphanumeric(10);//获取一个10位的随机字符串
System.out.println(salt);
String pswd = "123"+salt;
String saltPswd = DigestUtils.md5DigestAsHex(pswd.getBytes());
System.out.println(saltPswd);
这样同样的密码,加密多次值是不相同的,因为加入了随机字符串
BCrypt密码加密
在用户模块,对于用户密码的保护,通常都会进行加密。
我们通常对密码进行加密,然后存放在数据库中,在用户进行登录的时候,将其输入的密码进行加密然后与数据库中存放的密文进行比较,以验证用户密码是否正确。
目前,MD5和BCrypt比较流行,相对来说,BCrypt比MD5更安全。
BCrypt 官网http://www.mindrot.org/projects/jBCrypt/
(1)我们从官网下载源码
(2)新建工程,将源码类BCrypt拷贝到工程
(3)新建测试类,main方法中编写代码,实现对密码的加密
String gensalt = BCrypt.gensalt();//这个是盐 29个字符,随机生成
System.out.println(gensalt);
String password = BCrypt.hashpw("123456", gensalt); //根据盐对密码进行加密
System.out.println(password);//加密后的字符串前29位就是盐
(4)新建测试类,main方法中编写代码,实现对密码的校验。BCrypt不支持反运算,只支持密码校验。
boolean checkpw = BCrypt.checkpw("123456", "$2a$10$61ogZY7EXsMDWeVGQpDq3OBF1.phaUu7.xrwLyWFTOu8woE08zMIW");
System.out.println(checkpw);
上面IT袋网为您介绍的密码加密的方式选型有哪些的全面方法讲解,希望为您起一个抛砖引玉袋作用,能解决您生活中的问题吧。
相关阅读
-
什么是数据复制 有哪些架构
跟大家说一说什么是数据复制的介绍,具体内容如下: 数据复制是指将数据复制到一个或多个数据容器以确保可用性的过程。 复制的数据通常存储在不同的数据库实例中,即使一个实例发生故
-
http状态码大全 http状态码都有哪些各自代表的意思
HTTP状态码 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响
-
数据中心的三大架构是什么? 什么是数据中心架构
相对于大多数人数据中心的三大架构是什么的相关经验,接下来IT袋网小编就来介绍。 数据中心的架构可以根据不同的需求和设计理念进行划分。 通常,我们可以从以下三种主要架构类型来理
-
全面解析LNMP环境:构建高并发Web应用的开源技术栈
一篇很详细的教程是关于全面解析LNMP环境的相关知识,一定能解决您的问题的,一起来了解吧! 在Web开发领域,LNMP是一种广泛使用的开源技术栈,特别适合处理高并发的Web应用程序。 本文将


