密碼加密的方法

第一種,使用hutool
第一步導入pom

<dependency>
			<groupId>cn.hutool</groupId>
			<artifactId>hutool-all</artifactId>
			<version>4.1.19</version>
</dependency>

這個就是加密

package com.test;

import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.AES;

public class test5 {
	public static void main(String[] args) {
		String content = "test中文";
		// 隨機生成密鑰
		//byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();\
		String str="64asf64asf4asdf5";
		byte[] key=str.getBytes();
		// 構建
		AES aes = SecureUtil.aes(key);
		// 加密爲16進製表示
		String encryptHex = aes.encryptHex(content);
		// 解密爲原字符串
		String decryptStr = aes.decryptStr(encryptHex);
		System.out.println(encryptHex);
	}
}

這個就是解密
str就是鹽,到時候寫配置文件裏

package com.test;

import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.AES;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;

public class test6 {
	public static void main(String[] args) {
		String encryptHex="36d6feef484e85fee9ff282b4c1c9eb9";
		// 隨機生成密鑰
	//	byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();
		String str="64asf64asf4asdf5";
		byte[] key=str.getBytes();
		// 構建
		AES aes = SecureUtil.aes(key);
		// 解密爲原字符串
		String decryptStr = aes.decryptStr(encryptHex);
		System.out.println(decryptStr);
	}
}

還有一種方法是spring的

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
// 啓動類里加

@Bean
public BCryptPasswordEncoder encoder(){
	return new BCryptPasswordEncoder();
}
// 用的時候引入

	@Autowired
	private BCryptPasswordEncoder encoder;
	// 註冊時這樣就加密了
	user.setPassword(encoder.encode(user.getPassword()));
	// 登錄時校驗密碼
	encoder.matches(password, user.getPassword())

也可以始終這種動態的鹽

package com.test;

import org.apache.commons.lang3.RandomStringUtils;

import cn.hutool.crypto.SecureUtil;

public class test7 {

	public static void main(String[] args) {

		String phonenum = "13578942677";

		String password = "wodemimashi123456";

		String random = RandomStringUtils.randomAscii(10);// .randomNumeric(10);

		System.out.println(random);

		String data = phonenum + password + random;

		String zuizhongmima = SecureUtil.md5(data);

		System.out.println(zuizhongmima);
		// 30c4f092608b5c93b8e49080393f35e4
	}

}

組成密碼的字段可以動態組合,註冊時把鹽存儲到用戶的數據裏,每次登錄的時候取出來用來校驗
hutool裏有很多關於密碼的處理的工具類都可以使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章