Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
jasypt-util
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘帅阳
jasypt-util
Commits
2ac2634e
Commit
2ac2634e
authored
Jul 04, 2024
by
刘帅阳
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
初始代码
parent
34bf8c92
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
208 additions
and
0 deletions
+208
-0
pom.xml
pom.xml
+84
-0
Application.java
src/main/java/org/example/jasypt/Application.java
+17
-0
CyENCUtil.java
src/main/java/org/example/jasypt/util/CyENCUtil.java
+94
-0
ApplicationTests.java
src/test/java/org/example/jasypt/ApplicationTests.java
+13
-0
No files found.
pom.xml
0 → 100644
View file @
2ac2634e
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<groupId>
org.example
</groupId>
<artifactId>
jasypt
</artifactId>
<version>
0.0.1-SNAPSHOT
</version>
<name>
jasypt1.9.3
</name>
<description>
jasypt1.9.3
</description>
<properties>
<java.version>
1.8
</java.version>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.reporting.outputEncoding>
UTF-8
</project.reporting.outputEncoding>
<spring-boot.version>
2.6.13
</spring-boot.version>
</properties>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter
</artifactId>
<version>
2.6.3
</version>
<!-- 根据你的项目版本 -->
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
<!-- 配置文件加密-->
<dependency>
<groupId>
com.github.ulisesbocchio
</groupId>
<artifactId>
jasypt-spring-boot-starter
</artifactId>
<version>
3.0.2
</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-dependencies
</artifactId>
<version>
${spring-boot.version}
</version>
<type>
pom
</type>
<scope>
import
</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<!-- 打包名称 使用配置文件名称 -->
<finalName>
jasypt-util
</finalName>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-jar-plugin
</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>
org.example.jasypt.Application
</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<executions>
<execution>
<goals>
<goal>
repackage
</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
src/main/java/org/example/jasypt/Application.java
0 → 100644
View file @
2ac2634e
package
org
.
example
.
jasypt
;
import
org.example.jasypt.util.CyENCUtil
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@SpringBootApplication
public
class
Application
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
Application
.
class
,
args
);
//调用接口
CyENCUtil
.
main
(
args
);
}
}
src/main/java/org/example/jasypt/util/CyENCUtil.java
0 → 100644
View file @
2ac2634e
package
org
.
example
.
jasypt
.
util
;
import
org.jasypt.encryption.pbe.PooledPBEStringEncryptor
;
import
org.jasypt.encryption.pbe.config.SimpleStringPBEConfig
;
import
java.util.Scanner
;
public
class
CyENCUtil
{
/**
* jasypt-1.9.3 加解密工具类( jasypt-spring-boot-starter 是 2.1.2 )
*/
private
static
final
String
PBEWITHHMACSHA512ANDAES_128
=
"PBEWithHmacSHA512AndAES_128"
;
/**
* Jasyp3.x 加密(PBEWITHHMACSHA512ANDAES_256)
* @param plainText 待加密的原文
* @param factor 加密秘钥
* @return java.lang.String
*/
public
static
String
encryptWithSHA512
(
String
plainText
,
String
factor
)
{
// 1. 创建加解密工具实例
PooledPBEStringEncryptor
encryptor
=
new
PooledPBEStringEncryptor
();
// 2. 加解密配置
SimpleStringPBEConfig
config
=
new
SimpleStringPBEConfig
();
config
.
setPassword
(
factor
);
config
.
setAlgorithm
(
PBEWITHHMACSHA512ANDAES_128
);
// 为减少配置文件的书写,以下都是 Jasyp 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
(
plainText
);
}
/**
* Jaspy3.x 解密(PBEWITHHMACSHA512ANDAES_256)
* @param encryptedText 待解密密文
* @param factor 解密秘钥
* @return java.lang.String
*/
public
static
String
decryptWithSHA512
(
String
encryptedText
,
String
factor
)
{
// 1. 创建加解密工具实例
PooledPBEStringEncryptor
encryptor
=
new
PooledPBEStringEncryptor
();
// 2. 加解密配置
SimpleStringPBEConfig
config
=
new
SimpleStringPBEConfig
();
config
.
setPassword
(
factor
);
config
.
setAlgorithm
(
PBEWITHHMACSHA512ANDAES_128
);
// 为减少配置文件的书写,以下都是 Jasyp 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
(
encryptedText
);
}
public
static
void
main
(
String
[]
args
)
{
//加密因子
String
salt
=
"nfei7ur67nfg345srj34HDbvdn"
;
//窗口提示输入字符串
System
.
out
.
println
(
"请输入待加密字符串:"
);
String
plainText
=
new
Scanner
(
System
.
in
).
nextLine
();
//这个每次跑的结果不一样
String
encryptWithMD5Str
=
encryptWithSHA512
(
plainText
,
salt
);
//虽然不一样,这个也能正常执行
String
decryptWithMD5Str
=
decryptWithSHA512
(
encryptWithMD5Str
,
salt
);
System
.
out
.
println
(
"加密前:"
+
plainText
);
System
.
out
.
println
(
"加密后:"
+
encryptWithMD5Str
);
System
.
out
.
println
(
"解密后:"
+
decryptWithMD5Str
);
System
.
out
.
println
(
"使用方式:将生成的加密字符串用ENC()包装放入配置文件即可"
);
System
.
out
.
println
(
"例如:password: ENC("
+
encryptWithMD5Str
+
")"
);
System
.
out
.
println
(
"======================================================================================"
);
main
(
args
);
}
}
src/test/java/org/example/jasypt/ApplicationTests.java
0 → 100644
View file @
2ac2634e
package
org
.
example
.
jasypt
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.test.context.SpringBootTest
;
@SpringBootTest
class
ApplicationTests
{
@Test
void
contextLoads
()
{
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment