首页 > 其他分享 >Jasypt和Druid加解密函数

Jasypt和Druid加解密函数

时间:2023-05-22 17:22:55浏览次数:45  
标签:String Jasypt crack 加解密 Druid jasypt text encryptor config

spring boot jasypt 加解密

jasypt 加密ENC() 需要启动参数秘钥

Druid 加密,需要public-key

 

 

package com.example.demo;


import com.alibaba.druid.filter.config.ConfigTools;
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;

class JasyptUtil {
    private static final String PBEWITHMD5ANDDES = "PBEWithMD5AndDES";
    private static final String PBEWITHHMACSHA512ANDAES_256 = "PBEWITHHMACSHA512ANDAES_256";


    public String DruidEncyrpt(String publickey, String text) throws Exception {
        return ConfigTools.decrypt(publickey, text);
    }

    /**
     * @param text  待加密原文
     * @param crack 盐值(密钥)
     * @return 加密后的字符串
     * @Description: Jasypt加密(PBEWithMD5AndDES)
     */
    public static String encryptWithMD5(String text, String crack) {
        //1.创建加解密工具实例
        StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
        //2.加解密配置
        EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
        config.setAlgorithm(PBEWITHMD5ANDDES);
        config.setPassword(crack);
        encryptor.setConfig(config);
        //3.加密
        return encryptor.encrypt(text);
    }

    /**
     * @param text  待解密原文
     * @param crack 盐值(密钥)
     * @return 解密后的字符串
     * @Description: Jasypt解密(PBEWithMD5AndDES)
     */
    public static String decryptWithMD5(String text, String crack) {
        //1.创建加解密工具实例
        StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
        //2.加解密配置
        EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
        config.setAlgorithm(PBEWITHMD5ANDDES);
        config.setPassword(crack);
        encryptor.setConfig(config);
        //解密
        return encryptor.decrypt(text);
    }

    /**
     * @param text  待加密的原文
     * @param crack 盐值(密钥)
     * @return 加密后的字符串
     * @Description: jasypt 加密(PBEWITHHMACSHA512ANDAES_256)
     */
    public static String encryptWithSHA512(String text, String crack) {
        //1.创建加解密工具实例
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        //2.加解密配置
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword(crack);
        config.setAlgorithm(PBEWITHHMACSHA512ANDAES_256);
        // 为减少配置文件的书写,以下都是 Jasypt 3.x 版本,配置文件默认配置
        config.setKeyObtentionIterations("1000");
        config.setPoolSize("1");
        config.setProviderName("SunJCE");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
        config.setStringOutputType("base64");
        encryptor.setConfig(config);
        //3.加密
        return encryptor.encrypt(text);
    }

    /**
     * @param text  待解密原文
     * @param crack 盐值(密钥)
     * @return 解密后的字符串
     * @Description: jasypt 解密(PBEWITHHMACSHA512ANDAES_256)
     */
    public static String decryptWithSHA512(String text, String crack) {
        //1.创建加解密工具实例
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        //2.加解密配置
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword(crack);
        config.setAlgorithm(PBEWITHHMACSHA512ANDAES_256);
        // 为减少配置文件的书写,以下都是 Jasypt 3.x 版本,配置文件默认配置
        config.setKeyObtentionIterations("1000");
        config.setPoolSize("1");
        config.setProviderName("SunJCE");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
        config.setStringOutputType("base64");
        encryptor.setConfig(config);
        //3.解密
        return encryptor.decrypt(text);
    }

    public static void main(String[] args) {
        String text = "xxxxxxxxxxxxlvXSw=";
        String key = "jasypt key";  // -Djasypt.encryptor.password=
        String ret = JasyptUtil.decryptWithSHA512(text,key);
        System.out.println(ret);
  

    }

}

 

标签:String,Jasypt,crack,加解密,Druid,jasypt,text,encryptor,config
From: https://www.cnblogs.com/sevck/p/17421208.html

相关文章

  • SM2前后端交互加解密(已联调测通)
    准备工作:后端(jar包)、前端(js文件)阿里云盘:所需文件:https://www.aliyundrive.com/s/wmYT1TMx4az  1.后端java代码SM2工具类:importcom.antherd.smcrypto.sm2.Keypair;importcom.antherd.smcrypto.sm2.Sm2;importio.netty.util.internal.StringUtil;publicclassSM......
  • 从零玩转前后端加解密之SM2-sm2
    title:从零玩转前后端加解密之SM2date:2022-08-2119:42:00.907updated:2023-03-3013:28:48.866url:https://www.yby6.com/archives/sm2categories:-加密算法-从零玩转系列tags:-加密算法-sm2前言SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密......
  • druid使用时,发现数据库空闲太久自动关闭连接导致异常的问题
    系统启动后,创建了连接池。那如果后续超过数据库配置的最大连接时间,就会单方面的断开连接。而此时,druid并不知道,所以,在有请求访问进行数据操作的时候,使用到那个已断开的连接,就会报错。 解决方式是:回收连接池中的链接实例:timeBetweenEvictionRunsMillis:10000minEvictab......
  • 记一次解‘字符串加解密’算法
    题目:对输入的字符串进行加解密,并输出。加密方法为:当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;其他字符不做变化。解密方法为加密的逆过程。数据范围:输入的......
  • springboot alibaba druid数据库连接池配置,输出可执行sql
    #数据源配置spring:datasource:type:com.alibaba.druid.pool.DruidDataSourcedruid:#初始连接数initialSize:5#最小连接池数量minIdle:2#最大连接池数量maxActive:50#配置获取连接等待超时的时间......
  • Druid 查询超时配置的探究 → DataSource 和 JdbcTemplate 的 queryTimeout 到底谁生
    前情回顾还记得记一次Druid超时配置的问题→引发对Druid时间配置项的探究遗留的问题吗?如果同时设置 DataSource 的 queryTimeout 和 JdbcTemplate 的 queryTimeout ,那么哪个 queryTimeout 生效?实践出结果想快速知道答案,做法很简单,两个都设置,看生......
  • C# 实现RSA加解密
    一、支付宝工具生成公钥私钥下载地址链接:https://pan.baidu.com/s/15L1GM8mK43tzV9XyyNEV8Q提取码:vux3使用方法可参考阿里文档:https://docs.open.alipay.com/291/105971/二、加密说明:1.使用公钥加密, 2.加密后每次结果是可变的三、解密说明:1.使用私钥解密四、实现代码利用工具......
  • 【实战】国密4(SM4)使用 .NET 和 Java 相互加解密
    需求:由于朋友项目上需要和第三方对接,数据在传输过程中使用国密4(SM4)算法进行了加密,需要双方对数据进行加密和解密操作,第三方使用的是Java开发的项目,朋友使用的是.NET开发的项目。SM4.0(原名SMS4.0)是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局于2012年3月21日发......
  • 20 18 | 加解密服务平台:如何让敏感数据存储与传输更安全?
    你好,我是李智慧。在一个应用系统运行过程中,需要记录、传输很多数据,这些数据有的是非常敏感的,比如用户姓名、手机号码、密码、甚至信用卡号等等。这些数据如果直接存储在数据库,记录在日志中,或者在公网上传输的话,一旦发生数据泄露,不但可能会产生重大的经济损失,还可能会使公司陷入重......
  • SqlSessionFactory、SqlSession、Druid之间的关系梳理
    SqlSessionFactory是什么?SqlSessionFactory 是Mybatis的核心接口之一,它是用于创建SqlSession对象。Mybatis的SqlSession对象是负责管理应用程序与数据库之间一组事务的机制,并为应用程序提供访问数据库的方法。SqlSession是线程不安全的对象,因此应始终使用它的请求/响......