Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
L
lefull-lot-microservice
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
yangqi
lefull-lot-microservice
Commits
d5c050ff
提交
d5c050ff
authored
11月 25, 2022
作者:
yangqi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
回调
上级
d30d717d
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
54 行增加
和
0 行删除
+54
-0
CallbackService.java
.../src/main/java/cn/lefull/service/ali/CallbackService.java
+18
-0
CallbackServiceImpl.java
.../main/java/cn/lefull/service/ali/CallbackServiceImpl.java
+36
-0
没有找到文件。
lefull-lot-service/src/main/java/cn/lefull/service/ali/CallbackService.java
0 → 100644
浏览文件 @
d5c050ff
package
cn
.
lefull
.
service
.
ali
;
import
org.springframework.stereotype.Service
;
import
java.nio.charset.Charset
;
import
java.security.InvalidKeyException
;
import
java.security.NoSuchAlgorithmException
;
/**
* @author 杨奇
*/
@Service
public
interface
CallbackService
{
boolean
checkSign
(
String
key
,
String
body
,
String
timestamp
,
String
sign
)
throws
NoSuchAlgorithmException
,
InvalidKeyException
;
String
hmacSha1
(
String
key
,
String
data
,
Charset
bytesEncode
)
throws
NoSuchAlgorithmException
,
InvalidKeyException
;
}
lefull-lot-service/src/main/java/cn/lefull/service/ali/CallbackServiceImpl.java
0 → 100644
浏览文件 @
d5c050ff
package
cn
.
lefull
.
service
.
ali
;
import
org.springframework.stereotype.Service
;
import
javax.crypto.Mac
;
import
javax.crypto.spec.SecretKeySpec
;
import
java.math.BigInteger
;
import
java.nio.charset.Charset
;
import
java.nio.charset.StandardCharsets
;
import
java.security.InvalidKeyException
;
import
java.security.NoSuchAlgorithmException
;
/**
* @author 杨奇
*/
@Service
public
class
CallbackServiceImpl
implements
CallbackService
{
@Override
public
boolean
checkSign
(
String
key
,
String
body
,
String
timestamp
,
String
sign
)
throws
NoSuchAlgorithmException
,
InvalidKeyException
{
return
sign
.
equals
(
hmacSha1
(
key
,
body
+
timestamp
,
StandardCharsets
.
UTF_8
));
}
@Override
public
String
hmacSha1
(
String
key
,
String
data
,
Charset
bytesEncode
)
throws
NoSuchAlgorithmException
,
InvalidKeyException
{
SecretKeySpec
signingKey
=
new
SecretKeySpec
(
key
.
getBytes
(
bytesEncode
),
"HmacSHA1"
);
Mac
mac
=
Mac
.
getInstance
(
"HmacSHA1"
);
mac
.
init
(
signingKey
);
//通用方法 (由 byte[]转 hex string)
return
byteToHexString
(
mac
.
doFinal
(
data
.
getBytes
(
bytesEncode
)));
}
private
String
byteToHexString
(
byte
[]
bytes
){
return
new
BigInteger
(
1
,
bytes
).
toString
(
16
);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论