jasypt的使用和获取jdk支持的密码学算法

package util;

import java.security.Provider;
import java.security.Provider.Service;
import java.security.Security;
import java.util.Set;

import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig;
import org.jasypt.util.text.BasicTextEncryptor;
import org.jasypt.util.text.StrongTextEncryptor;

/**
 * jasypt的使用和获取jdk支持的密码学算法
 * 542335496@qq.com
 */
public class ConfigEncryptUtils {
	private static final StandardPBEStringEncryptor ENCRYPTOR = new StandardPBEStringEncryptor();
	static {
		EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
		// Cipher.getInstance(this.algorithm, this.provider);
		// config.setAlgorithm("PBEWithMD5AndDES");
		config.setAlgorithm("PBEWithSHA1AndDESede");
		// 自己在用的时候更改此密码
		config.setPassword("config");

		//获取jdk支持的密码学算法
		Provider[] providers = Security.getProviders();
		for (Provider provider : providers) {
			// System.out.println(provider.getInfo());
			// System.out.println(JSON.toJSONString(provider));
			Set<Provider.Service> services = provider.getServices();
			for (Service service : services) {
				System.out.println(service.getAlgorithm());
			}
		}

		ENCRYPTOR.setConfig(config);
	}

	public static void main(String[] args) {
		String plaintext = "root";
		String ciphertext = ENCRYPTOR.encrypt(plaintext);
		System.out.println(plaintext + " : " + ciphertext);
		System.out.println(ciphertext + " : " + ENCRYPTOR.decrypt(ciphertext));

		// ciphertext="royp2TvbUziD+86p1l8sxg==";
		// System.out.println(ciphertext+" : "+ENCRYPTOR.decrypt(ciphertext));
		plaintext = "sa";
		ciphertext = ENCRYPTOR.encrypt(plaintext);
		System.out.println(plaintext + " : " + ciphertext);
		test002();
	}

	private static void test002() {
		 //加密     
        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();     
        textEncryptor.setPassword("password");    
        String newPassword = textEncryptor.encrypt("123456");    
        System.out.println(newPassword);    
        //解密     
        BasicTextEncryptor textEncryptor2 = new BasicTextEncryptor();     
        textEncryptor2.setPassword("password");     
        String oldPassword = textEncryptor2.decrypt(newPassword);       
        System.out.println(oldPassword);    
        System.out.println("--------------------------");  
  
        //强加密算法需要去jdk官网下载jce.jar 
        StrongTextEncryptor ste = new StrongTextEncryptor();  
        //加密  
        ste.setPassword("password");  
        String encyptedResult= ste.encrypt("123456");  
        System.out.println("encyptedResult:"+encyptedResult);  
        //解密  
        String dencyptedResult = ste.decrypt(encyptedResult);  
        System.out.println(dencyptedResult);  
		
	}
}
package com.jiepu;
import java.security.Provider;
import java.security.Security;
import java.security.Provider.Service;
import java.util.Set;

import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig;

/**
 *把密文放到配置文件中的时候要注意: ENC(密文)
 * 
 * @author 杨尚川
 */
public class ConfigEncryptUtils {
	
	public static void main(String[] args) {
		//test001();
		test002();
	}

	private static void test002() {
		// 加密器
		StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
		// 加密配置
		EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
		//获取jdk支持的密码学算法  
        Provider[] providers = Security.getProviders();  
        for (Provider provider : providers) {  
            // System.out.println(provider.getInfo());  
            // System.out.println(JSON.toJSONString(provider));  
            Set<Provider.Service> services = provider.getServices();  
            for (Service service : services) {  
                System.out.println(service.getAlgorithm());  
            }  
        }  
	}

	private static void test001() {
		// 加密器
		StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
		// 加密配置
		EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
		config.setAlgorithm("PBEWithMD5AndDES");
		// 自己在用的时候更改此密码
		config.setPassword("apdplat");
		// 应用加密配置 DES算法
		encryptor.setConfig(config);
		
		String plaintext = "root";
		// 加密
		String ciphertext = encryptor.encrypt(plaintext);
		
		System.out.println(plaintext + "==>" + ciphertext);
		
		String result=encryptor.decrypt(ciphertext);
		System.out.println(ciphertext + "==>" + result);
	}
}

http://my.oschina.net/apdplat/blog/405306


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个开源的Java框架,可帮助开发者更快速地构建应用程序。Jasypt3是Spring Boot中一种常用的加密库,可用于加密敏感数据,如数据库密码。下面简要介绍如何使用Spring Boot和Jasypt3来加密数据库密码: 1. 添加依赖:在pom.xml中添加Jasypt3的依赖,如下所示: ```xml <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency> ``` 2. 配置加密算法和密钥: 在Spring Boot的配置文件(application.properties或application.yml)中添加以下配置: ```properties jasypt.encryptor.algorithm=算法 jasypt.encryptor.password=密钥 ``` 3. 加密数据库密码: 在配置文件中使用Jasypt3提供的加密语法将数据库密码进行加密。例如,假设我们要加密的密码是"password",可以使用以下语法: ```properties encryptor.encrypt(密码) ``` 4. 使用加密的密码: 在项目中的数据源配置文件(如application.properties)中,使用加密后的密码。例如: ```properties spring.datasource.username=用户名 spring.datasource.password=ENC(加密的密码) ``` 5. 运行应用程序: 启动Spring Boot应用程序,它将自动使用配置的密钥解密密码,然后使用解密后的密码连接数据库。 通过以上步骤,我们可以使用Spring Boot和Jasypt3来实现数据库密码的加密。这样可以保护敏感数据的安全性,同时提供了一种方便的方法来管理加密密钥和加密算法

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值