调用效果:密码:123456,盐abcd(这是动态的,一个用户一个码,越长越好),得到:1G00500_000000abcd23456c000000abcd

最后给他加上md5 调用后得到: $2a$10$PZTMPfyTkkzZmIQXmhnv2uvOt9ecJxP4oEjkOJYKYaEMr.eewOGWa

就算密文被破解了得到的密码也是1G00500_000000abcd23456c000000abcd,完美防止了查看原密码123456

package com.java.core.web.utils;public class Md5Utils {//盐加密public static String md5Password(String password,String salt){//salt至少10位if(salt.length()<10){salt= Md5Utils.leftPad(salt,10,"0");}StringBuilder  pwd=new StringBuilder(password+"c"+salt);pwd=pwd.insert(1,"G");pwd=pwd.insert(2,salt.substring(1));pwd=pwd.insert(4,"5");pwd=pwd.insert(5,salt.substring(2,4));pwd=pwd.insert(7,"_");pwd=pwd.insert(8,salt.substring(0,3));//return  pwd.toString();  md5return new BCryptPasswordEncoder().encode(pwd.toString());}//字符串格式化长度不足补0public static String leftPad(String str, int strLength,String chart) {int strLen = str.length();if (strLen < strLength) {while (strLen < strLength) {StringBuffer sb = new StringBuffer();sb.append(chart).append(str);// 左补0// sb.append(str).append("0");//右补0str = sb.toString();strLen = str.length();}}return str;}
}

这里顺便提一嘴,使用BCryptPasswordEncoder加密,每次生成的密文都不一样,比如密码123,第一次调用,得到密文xxxxxxxxxx,第二次调用得到密文aaaaaaaaaaaaaaa,这样做密码对比的时候就不能拿密文对比了,而是调用matches 去对比,代码如下

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;public class Test {public static void main(String[] args) {String password = "123456";BCryptPasswordEncoder bcryptPasswordEncoder = new BCryptPasswordEncoder();//加密:bcryptPasswordEncoder进行密码加密String encodedPassword = bcryptPasswordEncoder.encode(password);System.out.println("bcryptPasswordEncoder进行密码加密:"+encodedPassword);//解密:boolean flag = bcryptPasswordEncoder.matches(password, encodedPassword);//如果flag为true,则解密成功  false,则解密失败System.out.println("解密:"+flag);}}

JAVA 加盐加密方法相关推荐

  1. Python加盐加密方法hashlib(md5,sha224,sha1,sha256)

    用random.randint随机数给密码加,盐加强密码的安全性

  2. 基于java注册登录MD5算法加盐加密颁发 Token身份令牌使用各种邮箱发送验证码详解雪花算法

    目的作用 == 在项目中,为了防止别人窥视我们的密码通常我们会采取一些加密方式.这里简单介绍一下MD5 加盐加密方法,MD5叫做信息-摘要算法,严格来说不是加密方式,而是信息摘要. 对于可以接触到数据 ...

  3. java md5加盐与解密_md5加密,md5加盐加密和解密

    packagecom.java.test;importjava.security.MessageDigest;importjava.security.SecureRandom;importjava.u ...

  4. Java:博客系统,实现加盐加密,分页,草稿箱,定时发布

    文章目录 1. 项目概述 2. 准备工作 2.1 数据库表格代码 2.2 前端代码 2.3 配置文件 3. 准备项目结构 3.1 拷贝前端模板 3.2 定义实体类 3.3 定义mapper接口和 xm ...

  5. Shiro认证及加盐加密

    目录 今天的知识是与上次所分享的知识相关联的,在Shiro入门的基础进行编写,上次之前的数据是死数据(放在Shiro.ini)而这次是活数据,可以连接到数据库,运用域Relam知识.同时出于维护用户的 ...

  6. MD5加盐加密工具类(可直接使用)

    MD5加盐加密工具类 在我们做项目时,涉及到用户密码,而正常来说数据库中不会直接存储明文的密码,都是加密之后的密码. 密码加密的方式有很多,比如: ① 3DES.AES.DES:使用对称加密算法,可以 ...

  7. MD5工具类 加盐加密 及编码

    titls: MD5工具类加密 date: 2018/11/12 10:03:42 categories: 开发module import java.security.MessageDigest; i ...

  8. Python项目-Day26-数据加密-hash加盐加密-token-jwt

    Python项目-Day26-数据加密-hash加盐加密-token-jwt 数据加密 import hashlibpwd='a123456' #sha1的参数必须是二进制 temp=hashlib. ...

  9. md5加密,md5加盐加密和解密

    package com.java.test;import java.security.MessageDigest; import java.security.SecureRandom; import ...

最新文章

  1. 对数据进行递归排序以树状显示
  2. Fedora 18 正式发布
  3. SQL存储过程解密研究
  4. ExtJS 的工具条及菜单
  5. CentOS6.4_X86_64 安装Drupal-7.31必须成功版!
  6. Openlayers中加载Geoserver切割的EPSG:900913离线瓦片地图并显示
  7. Java基础7:关于Java类和包的那些事
  8. 一本通 1282:最大子矩阵
  9. HTML与CSS基础之否定伪类(四)
  10. Java抽象– ULTIMATE教程(PDF下载)
  11. Java语言概述及常用DOS命令
  12. HLA程序:HelloWorld.hla
  13. Opera Unite如何架设自己的网站
  14. Win11任务栏不重叠怎么设置,Win11任务栏不重叠设置方法
  15. python求素数代码_Python实现高效求解素数代码实例
  16. WPS Office 去广告绿色版(2013.11.13更新)
  17. 清华大学李涓子教授:AI系统如何实现认知推理?
  18. 在有向图中找出所有简单环--Johnson算法
  19. 作为一名开发者,要警惕这五个浪费生命的现象
  20. 广州高清卫星地图 用百度卫星地图server下载 含标签、道路数据叠加 可商用

热门文章

  1. 后台服务出现明显“变慢”诊断思路
  2. 基于python图书馆管理系统和读者系统(附完整代码以及打包好的exe文件)
  3. leetcode 70. 爬楼梯-java实现
  4. python系列25:使用selenium进行自动化网页操作
  5. 下午一口气睡了五个小时
  6. i5 3470+XSB75M-PK+HD 7750安装黑苹果macOS Big Sur 11.7.7
  7. 数字化转型要去解决基础性的、急难险重的问题
  8. 东方博宜OJ题库答案
  9. git删除本地所有未提交的更改
  10. 对比学一下HTML和Latex的常用输入输出——图像与表格