Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dylan95
springboot-template_300498
提交
beeccb86
S
springboot-template_300498
项目概览
dylan95
/
springboot-template_300498
与 Fork 源项目一致
Fork自
小小白鸽 / springboot-template
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
springboot-template_300498
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
beeccb86
编写于
4月 21, 2023
作者:
6
632d6423b4d9145d677b07db
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Auto commit
上级
e8293a77
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
24 addition
and
11 deletion
+24
-11
src/main/java/com/lhstack/controller/CryptoController.java
src/main/java/com/lhstack/controller/CryptoController.java
+18
-8
src/main/java/com/lhstack/utils/Aes.java
src/main/java/com/lhstack/utils/Aes.java
+2
-3
src/main/resources/application.yml
src/main/resources/application.yml
+2
-0
target/classes/application.yml
target/classes/application.yml
+2
-0
target/classes/com/lhstack/controller/CryptoController.class
target/classes/com/lhstack/controller/CryptoController.class
+0
-0
target/classes/com/lhstack/utils/Aes.class
target/classes/com/lhstack/utils/Aes.class
+0
-0
未找到文件。
src/main/java/com/lhstack/controller/CryptoController.java
浏览文件 @
beeccb86
package
com.lhstack.controller
;
import
java.nio.charset.StandardCharsets
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
org.bouncycastle.util.encoders.Base64
;
import
org.bouncycastle.util.encoders.Hex
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
...
@@ -13,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
import
com.lhstack.utils.Aes
;
import
io.reactivex.Single
;
import
io.reactivex.exceptions.CompositeException
;
@RestController
@RequestMapping
(
"crypto"
)
...
...
@@ -26,14 +31,19 @@ public class CryptoController {
@PostMapping
(
"decrypt"
)
public
Single
<
String
>
decrypt
(
@RequestBody
Map
<
String
,
String
>
body
){
return
Single
.
defer
(()
->
{
String
aesKey
=
body
.
getOrDefault
(
"key"
,
defaultAesKey
);
String
aesIv
=
body
.
getOrDefault
(
"iv"
,
defaultAesIv
);
byte
[]
content
=
body
.
getOrDefault
(
"content"
,
""
).
getBytes
();
return
Single
.
fromCallable
(()
->
{
Optional
<
byte
[]>
resulOptional
=
Aes
.
decrypt
(
aesKey
,
aesIv
,
content
);
return
"hello world"
;
});
String
aesKey
=
body
.
getOrDefault
(
"key"
,
defaultAesKey
);
String
aesIv
=
body
.
getOrDefault
(
"iv"
,
defaultAesIv
);
byte
[]
content
=
body
.
getOrDefault
(
"content"
,
""
).
getBytes
();
return
Single
.
fromCallable
(()
->
Aes
.
decrypt
(
aesKey
,
aesIv
,
Base64
.
decode
(
content
)))
.
onErrorResumeNext
(
e
->
Single
.
just
(
Aes
.
decrypt
(
aesKey
,
aesIv
,
Hex
.
decode
(
content
))))
.
map
(
bytes
->
new
String
(
bytes
,
StandardCharsets
.
UTF_8
))
.
onErrorReturn
(
e
->
{
if
(
e
instanceof
CompositeException
){
CompositeException
compositeException
=
(
CompositeException
)
e
;
return
compositeException
.
getExceptions
().
stream
().
map
(
item
->
String
.
format
(
"%s=%s"
,
item
.
getClass
().
getSimpleName
(),
item
.
getMessage
())).
collect
(
Collectors
.
joining
(
","
));
}
return
e
.
getMessage
();
});
}
...
...
src/main/java/com/lhstack/utils/Aes.java
浏览文件 @
beeccb86
...
...
@@ -24,7 +24,7 @@ public class Aes {
}
}
public
static
Optional
<
byte
[]>
decrypt
(
String
key
,
String
iv
,
byte
[]
encryptBytes
){
public
static
byte
[]
decrypt
(
String
key
,
String
iv
,
byte
[]
encryptBytes
){
try
{
Cipher
cipher
=
StringUtils
.
hasText
(
iv
)
?
Cipher
.
getInstance
(
CBC
)
:
Cipher
.
getInstance
(
ECB
);
if
(
StringUtils
.
hasText
(
iv
)){
...
...
@@ -32,8 +32,7 @@ public class Aes {
}
else
{
cipher
.
init
(
Cipher
.
DECRYPT_MODE
,
new
SecretKeySpec
(
key
.
getBytes
(),
"AES"
));
}
byte
[]
bytes
=
cipher
.
doFinal
(
encryptBytes
);
return
Optional
.
of
(
bytes
);
return
cipher
.
doFinal
(
encryptBytes
);
}
catch
(
Exception
e
){
throw
new
RuntimeException
(
e
);
}
...
...
src/main/resources/application.yml
浏览文件 @
beeccb86
aes
:
key
:
axiwlazlf1456175
\ No newline at end of file
target/classes/application.yml
浏览文件 @
beeccb86
aes
:
key
:
axiwlazlf1456175
\ No newline at end of file
target/classes/com/lhstack/controller/CryptoController.class
浏览文件 @
beeccb86
无法预览此类型文件
target/classes/com/lhstack/utils/Aes.class
浏览文件 @
beeccb86
无法预览此类型文件
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录