Java如何实现密码加密
在查询时,我们如果要对用户的登录信息进行加密,通常会将其密码进行加密.
1) 可以借助spring框架工具类DigestUtils
2) 也可以使用shiro框架来实现
//保存用户自身信息 //1构建一个盐值对象 String salt=UUID.randomUUID().toString();//随机字符串 //2对密码进行盐值加密(加密算法MD5-特点:不可逆,相同内容加密结果也相同) //2.1加密方式1(借助spring框架工具类DigestUtils) //String newPassword=DigestUtils.md5DigestAsHex((salt+entity.getPassword()).getBytes()); //2.2加密方式2(借助shiro框架中的API) SimpleHash sh=new SimpleHash("MD5", entity.getPassword(), salt, 1); String newPassword=sh.toHex(); System.out.println("newPassword="+newPassword); entity.setSalt(salt); entity.setPassword(newPassword);
以上就是两者方式分别使用,
注意:
盐值salt:UUID.randomUUID().toString();生成的是一个随机字符串.
SimpleHash sh=new SimpleHash("MD5", entity.getPassword(), salt, 1);
这行shiro框架提供的加密中,
第一个参数"MD5"为加密算法,其特点:不可逆(只能加密不能解密),但是相同内容加密结果也相同;
第二个参数source,代表原密码;
第三个参数salt,就是我们先生成的盐值随机数;
第四个参数1,代表加密次数,我们这里只加密了一次.
entity.setSalt(salt); entity.setPassword(sh.toHex());
加密处理过后,我们再将新修改的密码转换为16进制数赋值给对象,salt的传递看你对象属性的设置.
然后再根据新的对象内的数据进行操作即可.
以上就是Java如何实现密码加密的详细内容,更多关于Java密码加密的资料请关注我们其它相关文章!
相关推荐
-
java明文密码三重加密方法
本文介绍了两种密码加密的方法,这两种很常见可以再百度随意找到. 1.摩斯密码: 说道密码加密不得不提的方法.很是经典. 首先说一下他的对照表,直接上图. 核心思想就是替换明文密码,将字符对应的替换成-与.两种符号的组合: 2.栅栏密码: 所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话. 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多.(一般不超过30个,也就是一.两句话) 这个没有什么好说的了,举个栗子:对明文ASDFGHJKL进行加密
-
java加密MD5实现及密码验证代码实例
这篇文章主要介绍了java加密MD5实现及密码验证代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 MD5算法具有以下特点: 1.压缩性:任意长度的数据,算出的MD5值长度都是固定的. 2.容易计算:从原数据计算出MD5值很容易. 3.抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别. 4.强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的. MD5的作用是让大容量
-
java实现置换密码加密解密
本文实例为大家分享了Java实现置换密码加密解密,供大家参考,具体内容如下 思路 置换密码只不过是简单的换位而已,这里写的是一个分组长度为7的置换密码因为所学知识有限,写的比较麻烦,这里先简单介绍一下思路: 1.因为置换密码首先要将其进行分组,这里分组长度为7,不足的位数补0,可以选取二维数组进行操作,定义二维数组,明文有多少个分组二维数组中就有多少个一维数组,其中一维的长度就是分组长度 2.定义一个一维数组key作为加密用的秘钥,一个一维数组trankey作为解密秘钥,这里其中的元素是自己写的
-
Java实现简单密码加密功能
本文实例为大家分享了Java实现简单密码加密案例,供大家参考,具体内容如下 需求: 首先将一组数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字, 最后将第一位和最后一位数字交换. 请任意给定一个小于8位的整数, 然后,把加密后的结果在控制台打印出来. 分析: 1.数据小于8位数 2.数据倒序 3.每位数字都加上5,再用和除以10的余数代替该数字 4.最后将第一位和最后一位数字交换 5.打印输出 代码实现: public class Encrypt{ public static v
-
JAVA中使用MD5加密实现密码加密
1.新建Md5.java package com.loger.md5; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import sun.misc.BASE64Encoder; public class Md5 { /**利用MD5进行加密*/ public String Encoder
-
JAVA 字符串加密、密码加密实现方法
在我们的程序设计中,我们经常要加密一些特殊的内容,今天总结了几个简单的加密方法,分享给大家! 如何用JAVA实现字符串简单加密解密?为保证用户信息安全,系统在保存用户信息的时候,务必要将其密码加密保存到数据库. 需要使用密码的时候,取出数据,解密处理即可. 避免保存明文密码. 方案一: package com.tnt.util; import java.security.MessageDigest; public class StringUtil { private final static S
-
java实现仿射密码加密解密
本文实例为大家分享了java实现仿射密码加密解密的具体代码,供大家参考,具体内容如下 加密:将明文转化为对应的数字,如 'a'-> 0, 'b'->1,-,'1'->26,'2'->27,-然后将数字进行仿射运算,求取出来的数字再转化为字符.即 密文=(K1*明文+K2)mod36 解密:密文转化为对应数字,然后进行仿射的逆运算,得到对应数字,然后将其转化为字符明文.解密 K3是K1的乘法逆元 import java.util.Scanner; public class Affin
-
Java如何实现密码加密
在查询时,我们如果要对用户的登录信息进行加密,通常会将其密码进行加密. 1) 可以借助spring框架工具类DigestUtils 2) 也可以使用shiro框架来实现 //保存用户自身信息 //1构建一个盐值对象 String salt=UUID.randomUUID().toString();//随机字符串 //2对密码进行盐值加密(加密算法MD5-特点:不可逆,相同内容加密结果也相同) //2.1加密方式1(借助spring框架工具类DigestUtils) //String newPas
-
Java使用bcrypt实现对密码加密效果详解
目录 简介 bcrypt加密原理 加密过程 校验过程 bcrypt与md5的区别 示例 1.引入依赖 2.写测试类 3.测试 密文含义 简介 本文用示例介绍使用对密码进行加密的算法:bcrypt. bcrypt是一种自带盐值(自动加盐)的加密方案. bcrypt加密原理 加密过程 先随机生成salt salt跟password进行hash 注意 对于同一个密码,每次生成的hash是不同的 hash中包含了salt 校验过程 从hash中取出salt salt跟password进行hash计算 将
-
JAVA 字符串加密、密码加密实现方法
在我们的程序设计中,我们经常要加密一些特殊的内容,今天总结了几个简单的加密方法,分享给大家! 如何用JAVA实现字符串简单加密解密?为保证用户信息安全,系统在保存用户信息的时候,务必要将其密码加密保存到数据库. 需要使用密码的时候,取出数据,解密处理即可. 避免保存明文密码. 方案一: package com.tnt.util; import java.security.MessageDigest; public class StringUtil { private final static S
-
Java实现的DES加密解密工具类实例
本文实例讲述了Java实现的DES加密解密工具类.分享给大家供大家参考,具体如下: 一个工具类,很常用,不做深入研究了,那来可直接用 DesUtil.java package lsy; import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; imp
-
SpringBoot+Shiro学习之密码加密和登录失败次数限制示例
这个项目写到现在,基本的雏形出来了,在此感谢一直关注的童鞋,送你们一句最近刚学习的一句鸡汤:念念不忘,必有回响.再贴一张ui图片: 前篇思考问题解决 前篇我们只是完成了同一账户的登录人数限制shiro拦截器的编写,对于手动踢出用户的功能只是说了采用在session域中添加一个key为kickout的布尔值,由之前编写的KickoutSessionControlFilter拦截器来判断是否将用户踢出,还没有说怎么获取当前在线用户的列表的核心代码,下面贴出来: /** * <p> * 服务实现类
-
Java编程实现非对称加密的方法详解
本文实例讲述了Java编程实现非对称加密的方法.分享给大家供大家参考,具体如下: 对称加密算法在加密和解密时使用的是同一个秘钥:而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥). 是一种 高级的双保险加密方式,一般的实现加密方式有DH密钥交换算法,RSA基于因子分解算法,ElGamal离散对数算法及ECC椭圆曲线加密等. DH加密解密 /** * 非对称加密之:DH加密 * 非对称DH,是安全性基于
-
Java 四种基本加密算法分析
Java 四种基本加密算法分析 简单的java加密算法有: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm,安全散列算法) HMAC(Hash Message Authentication Code,散列消息鉴别码) 1. BASE64 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2049,上面有MIME的
随机推荐
- js 验证密码强弱的小例子
- nodejs实现邮件发送服务实例分享
- Lua教程(三):表达式和语句
- 基于jquery实现一张图片点击鼠标放大再点缩小
- java必学必会之GUI编程
- windows与linux 路径正则写法
- 初探Swift3.0带来的变化汇总
- Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
- 使用SNK密钥文件保护你的DLL和代码不被反编译教程
- Yii中srbac权限扩展模块工作原理与用法分析
- python判断字符串是否纯数字的方法
- Python使用turtule画五角星的方法
- Linux下查找后门程序 CentOS 查后门程序的shell脚本
- 2013年立冬是什么时候 立冬是几号 立冬的含义介绍
- 在Python的Flask中使用WTForms表单框架的基础教程
- Android悬浮对话框(即点即关对话框)实现代码
- 详解EventDispatcher事件分发组件
- Android Parcelable接口使用方法详解
- Android Bitmap和Drawable相互转换的简单代码
- C# 图片与二进制转换的简单实例