MD5密码加密(盐)的简单运用

工具类Md5UUIDSaltUtil.java的使用

1.首先在配置文件中配置所谓的盐

password_salt:  'dsa45645dfsgfd64das64fdgd65fdsf' 

2.在需要的地方用@value注解获取值

	@Value("${password_salt}")
	private String passwordSalt;

从前台获取到的用户名,密码调用mapper接口插入到数据库当中
密码是经过盐加密的

		@RequestMapping("/addUser")
		@ResponseBody
		public int addUser(String sysUserName, String sysUserPwd1, String sysRoleId) {
			//加密方法 passwordSalt:配置文件中的加密字符
			String sysUserPwd = Md5Crypt.apr1Crypt(sysUserPwd1, passwordSalt);
			return sysUserMapper.addUser(sysUserName, sysUserPwd, sysRoleId);
		}

加密之后存入数据库中的密码在这里插入图片描述

用户登陆也是一样,输入的密码进行盐加密之后与数据库中的数据进行比较

	public String login(SysUser user, RedirectAttributes redirect, HttpSession session) {
		log.info(user.toString());
		String userName = user.getUserName();
		String userPwd = user.getUserPwd();
		//得到的用户名加盐进行加密 在进行判断
		String password = Md5Crypt.apr1Crypt(userPwd.getBytes(), passwordSalt);
		UsernamePasswordToken token = new UsernamePasswordToken(userName, password);
		Subject subject = SecurityUtils.getSubject();
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 这看起来像是一个十六进制编码的密文。这种格式通常用于表示二进制数据的可读形式。 可能使用的加密方式包括: 1. MD5加密:这是一种常用的消息摘要算法,用于对数据进行哈希运算。 2. SHA-1加密:这也是一种常用的消息摘要算法,与MD5类似,但安全性更高。 3. AES加密:这是一种常用的对称密钥加密算法。 4. DES加密:这是一种早期的对称密钥加密算法。 5. RSA加密:这是一种非对称密钥加密算法。 需要注意的是,通过密文长度和格式无法确定确切的加密方式,需要更多的信息才能进一步判断。 ### 回答2: 根据给出的密文"f51d3a18f91c4952a3ed0bc0ea61d21c",我们无法准确判断使用的加密方式,因为单凭密文无法直接推断出加密方式。 古典密码是早期使用的密码学方法,常见的古典密码包括凯撒密码、仿射密码、替换密码等。凯撒密码是一种字母替换密码,通过将明文中的每个字母按照字母表顺序向后(或向前)移动固定的位置来加密。仿射密码则是通过数学运算对字母进行加密,替换密码则是将明文的每个字母替换为密文中对应的字母。 为了推测使用的加密方式,我们需要进一步的线索和信息。可能的信息包括加密过程中是否使用了密钥、密文长度是否符合特定加密方式的要求、明文是否有特殊模式等等。只有通过详细的分析加密和解密过程,才能得出准确的结论。 综上所述,仅凭给出的密文无法确定使用的具体加密方式。需要更多的信息和分析才能推测出可能使用的加密方式。 ### 回答3: 根据给定的密文"f51d3a18f91c4952a3ed0bc0ea61d21c",我们无法准确判断具体采用了哪种加密方式。然而,我可以给出一些可能性。 1. 凯撒密码(Caesar Cipher):这是一种基于字母位移的加密方式,将每个字母按照指定的位移量进行转换。由于我们没有提供位移量信息,因此无法确定是否采用了凯撒密码。 2. 维吉尼亚密码(Vigenère Cipher):这是一种基于多表密码加密方式,每个明文字符通过参照密码表和密钥进行加密。由于我们没有提供密钥信息,因此无法确定是否采用了维吉尼亚密码。 3. 替代密码(Substitution Cipher):这种加密方式将明文中的字母替换为其他字母,每个字母按照一定的规则进行替换。常见的例子包括凯撒密码、培根密码等。由于我们没有提供替换规则和密钥信息,因此无法确定是否采用了替代密码。 4. 栅栏密码(Rail Fence Cipher):这是一种基于行列变换的加密方式,通过将明文分成多个栅栏形状的线条,然后按照特定的规则重组成密文。由于我们没有提供规则和密钥信息,因此无法确定是否采用了栅栏密码。 综上所述,根据只有密文而无其他信息的情况下,无法准确判断所采用的加密方式。如果能提供更多关于加密方式、规则或密钥的信息,我们将更有可能确定所使用的加密方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微微笑再加油

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值