Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
ShenghuoquanBusiness
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
bp
ShenghuoquanBusiness
Commits
3ab5f347
Commit
3ab5f347
authored
Jul 28, 2021
by
yinjiacheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add 加密服务
parent
700f6ea1
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
193 additions
and
30 deletions
+193
-30
HttpParamsUtils.kt
.../src/main/java/com/yidian/bcommon/http/HttpParamsUtils.kt
+6
-6
BCommonManager.kt
...on/src/main/java/com/yidian/bcommon/sdk/BCommonManager.kt
+18
-20
IEncryptService.kt
...n/src/main/java/com/yidian/bcommon/sdk/IEncryptService.kt
+49
-0
ZapServiceActionConstants.kt
.../com/yidian/bcommon/services/ZapServiceActionConstants.kt
+21
-0
ZapServiceNameConstants.kt
...va/com/yidian/bcommon/services/ZapServiceNameConstants.kt
+2
-1
BaseInitConfig.kt
...main/java/com/yidian/shenghuoquan/broot/BaseInitConfig.kt
+0
-2
BRootApplication.kt
...ava/com/yidian/shenghuoquan/broot/app/BRootApplication.kt
+5
-1
EncryptService.kt
...a/com/yidian/shenghuoquan/broot/service/EncryptService.kt
+92
-0
No files found.
CommonLib/BCommon/src/main/java/com/yidian/bcommon/http/HttpParamsUtils.kt
View file @
3ab5f347
...
...
@@ -6,7 +6,6 @@ import com.yidian.bcommon.app.YdBaseApplication
import
com.yidian.bcommon.constant.AppConfig
import
com.yidian.bcommon.sdk.BCommonManager
import
com.yidian.bcommon.utils.NetWorkUtils
import
com.yidian.framework.mobile.xdiamond.SecretUtil
import
com.yidian.yac.ftdevicefinger.core.FtDeviceFingerManager
import
timber.log.Timber
import
java.lang.reflect.Type
...
...
@@ -38,7 +37,7 @@ class HttpParamsUtils {
// C端身份请求加uid
BCommonManager
.
getUid
()
?.
let
{
paramsMap
[
"user_id"
]
=
it
}
Timber
.
tag
(
BCommonManager
.
TAG_HTTP
).
d
(
"request private params: ${gson.toJson(paramsMap)}"
)
hashMapOf
(
"tok"
to
SecretUtil
.
rsaEncrypt
(
gson
.
toJson
(
paramsMap
)))
hashMapOf
(
"tok"
to
BCommonManager
.
getEncryptIml
()
.
rsaEncrypt
(
gson
.
toJson
(
paramsMap
)))
}
else
{
Timber
.
tag
(
BCommonManager
.
TAG_HTTP
).
d
(
"request private params: ${gson.toJson(paramsMap)}"
)
paramsMap
...
...
@@ -53,10 +52,10 @@ class HttpParamsUtils {
decodeResult
.
status
=
res
.
status
if
(
rsaResult
!=
null
)
{
if
(
AppConfig
.
IS_ENCRYPT
)
{
val
result
=
SecretUtil
.
rsaDecrypt
(
rsaResult
as
String
)
val
result
=
BCommonManager
.
getEncryptIml
()
.
rsaDecrypt
(
rsaResult
as
String
)
Timber
.
tag
(
BCommonManager
.
TAG_HTTP
).
d
(
"response result: $result"
)
val
decryptResult
=
gson
.
fromJson
<
HttpDecryptResult
<
T
>>(
result
,
object
:
TypeToken
<
HttpDecryptResult
<
T
>>()
{}.
type
)
val
verify
=
SecretUtil
.
verifySign
(
decryptResult
.
reqid
+
decryptResult
.
ts
,
decryptResult
.
secret
)
val
verify
=
BCommonManager
.
getEncryptIml
()
.
verifySign
(
decryptResult
.
reqid
+
decryptResult
.
ts
,
decryptResult
.
secret
)
return
if
(
verify
)
{
Timber
.
tag
(
BCommonManager
.
TAG_HTTP
).
d
(
"verify success"
)
val
resultJson
=
gson
.
toJson
(
decryptResult
.
data
)
...
...
@@ -68,6 +67,7 @@ class HttpParamsUtils {
}
}
else
{
val
resultJson
=
gson
.
toJson
(
rsaResult
)
Timber
.
tag
(
BCommonManager
.
TAG_HTTP
).
d
(
"response result: $resultJson"
)
decodeResult
.
result
=
gson
.
fromJson
<
T
>(
resultJson
,
type
)
return
decodeResult
}
...
...
@@ -84,8 +84,8 @@ class HttpParamsUtils {
.
toString
()
}
private
fun
getSignString
(
reqId
:
String
,
timeStamp
:
Long
):
String
?
{
return
SecretUtil
.
sign
(
StringBuilder
().
append
(
reqId
).
append
(
timeStamp
).
toString
())
private
fun
getSignString
(
reqId
:
String
,
timeStamp
:
Long
):
String
{
return
BCommonManager
.
getEncryptIml
()
.
sign
(
StringBuilder
().
append
(
reqId
).
append
(
timeStamp
).
toString
())
}
}
}
CommonLib/BCommon/src/main/java/com/yidian/bcommon/sdk/BCommonManager.kt
View file @
3ab5f347
...
...
@@ -12,8 +12,10 @@ object BCommonManager {
const
val
TAG_HTTP
=
"merchant-b-http"
val
publicParams
by
lazy
{
HashMap
<
String
,
String
>()
}
val
privateParams
by
lazy
{
HashMap
<
String
,
String
>()
}
/**
* 加密接口实现
*/
private
lateinit
var
encryptIml
:
IEncryptService
/**
* C端 uid
...
...
@@ -22,24 +24,6 @@ object BCommonManager {
// private var uid: String? = "510227073302"
private
var
uid
:
String
?
=
null
/**
* 初始化公共参数
*/
fun
initPublicParams
(
params
:
HashMap
<
String
,
String
>)
{
params
.
forEach
{
publicParams
[
it
.
key
]
=
it
.
value
}
}
/**
* 初始化私有参数
*/
fun
initPrivateParams
(
params
:
HashMap
<
String
,
String
>)
{
params
.
forEach
{
privateParams
[
it
.
key
]
=
it
.
value
}
}
/**
* C端同步uid
*/
...
...
@@ -73,4 +57,18 @@ object BCommonManager {
fun
getUid
():
String
?
{
return
uid
}
/**
* 获取加密接口实现
*/
fun
getEncryptIml
():
IEncryptService
{
return
encryptIml
}
/**
* 添加加密接口实现
*/
fun
setEncryptIml
(
service
:
IEncryptService
)
{
encryptIml
=
service
}
}
CommonLib/BCommon/src/main/java/com/yidian/bcommon/sdk/IEncryptService.kt
0 → 100644
View file @
3ab5f347
package
com.yidian.bcommon.sdk
/**
* author: yinjiacheng
* date: 7/28/21 11:22 AM
* description: 加解密服务接口定义
*/
interface
IEncryptService
{
/**
* RSA私钥签名
* @param src 需要签名的字符串
* @return 签名结果
*/
fun
sign
(
src
:
String
):
String
/**
* RSA公钥验签
* @param src 原始串
* @param sign 签名串
* @return 是否通过
*/
fun
verifySign
(
src
:
String
,
sign
:
String
):
Boolean
/**
* RSA公钥加密
* @param src 需要加密的字符串
* @return 加密结果
*/
fun
rsaEncrypt
(
src
:
String
):
String
/**
* RSA私钥解密
* @param src 加密串
*/
fun
rsaDecrypt
(
src
:
String
):
String
/**
* AES加密
* @param src 需要加密的字符串
* @return 加密结果
*/
fun
aesEncrypt
(
src
:
String
):
String
/**
* AES解密
* @param src 加密串
*/
fun
aesDecrypt
(
src
:
String
):
String
}
CommonLib/BCommon/src/main/java/com/yidian/bcommon/services/ZapServiceActionConstants.kt
View file @
3ab5f347
...
...
@@ -9,14 +9,35 @@ class ZapServiceActionConstants {
companion
object
{
// 退出登录
const
val
ActionLogout
=
"ActionLogout"
// 请求生活号列表
const
val
ActionRequestList
=
"ActionRequestList"
// 请求短信验证码
const
val
ActionRequestSmsCode
=
"ActionRequestSmsCode"
// 通过服务清除内存中的认证数据
const
val
ActionClearAuthenticationData
=
"ActionClearAuthenticationData"
// 进行支付
const
val
ActionToPay
=
"ActionToPay"
// RSA私钥签名
const
val
ActionRSASign
=
"RSASign"
// RSA公钥验签
const
val
ActionRSAVerifySign
=
"RSAVerifySign"
// RSA公钥加密
const
val
ActionRSAEncrypt
=
"RSAEncrypt"
// RSA私钥解密
const
val
ActionRSADecrypt
=
"RSADecrypt"
// AES加密
const
val
ActionAESEncrypt
=
"AESEncrypt"
// AES解密
const
val
ActionAESDecrypt
=
"AESDecrypt"
}
}
CommonLib/BCommon/src/main/java/com/yidian/bcommon/services/ZapServiceNameConstants.kt
View file @
3ab5f347
...
...
@@ -17,7 +17,8 @@ class ZapServiceNameConstants {
const
val
BNAHttpReq
=
"BNAHttpReq"
// BOrder组件中给H5提供的支付服务(名称需要和H5同步的)
const
val
BPayService
=
"bPayService"
// BRoot组件中加解密服务
const
val
EncryptService
=
"EncryptService"
}
}
Components/BRoot/src/main/java/com/yidian/shenghuoquan/broot/BaseInitConfig.kt
View file @
3ab5f347
...
...
@@ -38,8 +38,6 @@ object BaseInitConfig {
if
(
ProcessUtil
.
isMainProcess
(
context
))
{
FtDeviceFingerManager
.
init
(
context
)
initXBridManager
(
context
)
// 初始化磐石SDK
SecretUtil
.
init
(
BuildConfig
.
IS_ENCRYPT_DEBUG_KEY
,
BuildConfig
.
DEBUG
)
// 初始化App升级
initAppUpgrade
(
context
)
// 初始化慧眼
...
...
Components/BRoot/src/main/java/com/yidian/shenghuoquan/broot/app/BRootApplication.kt
View file @
3ab5f347
package
com.yidian.shenghuoquan.broot.app
import
android.content.Intent
import
com.yidian.bcommon.constant.XRouterPathConstants
import
com.yidian.bcommon.app.YdBaseApplication
import
com.yidian.bcommon.constant.XRouterPathConstants
import
com.yidian.bcommon.services.ZapServiceNameConstants
import
com.yidian.news.util.ProcessUtil
import
com.yidian.shenghuoquan.broot.service.EncryptService
import
com.yidian.xpage.XPageManager
import
com.yidian.xpage.node.XPageHandler
import
com.yidian.xpage.node.XPageNode
import
com.yidian.xpage.node.XPageNodePageType
import
com.yidian.yac.core.core.YacModuleSpec
import
com.yidian.yac.core.zap.Zap
@YacModuleSpec
...
...
@@ -40,5 +43,6 @@ class BRootApplication : YdBaseApplication() {
}
private
fun
initService
()
{
Zap
.
addService
(
ZapServiceNameConstants
.
EncryptService
,
EncryptService
())
}
}
Components/BRoot/src/main/java/com/yidian/shenghuoquan/broot/service/EncryptService.kt
0 → 100644
View file @
3ab5f347
package
com.yidian.shenghuoquan.broot.service
import
com.yidian.bcommon.BuildConfig
import
com.yidian.bcommon.sdk.BCommonManager
import
com.yidian.bcommon.sdk.IEncryptService
import
com.yidian.bcommon.services.ZapServiceActionConstants
import
com.yidian.framework.mobile.xdiamond.SecretUtil
import
com.yidian.xarc.xrouter.ResultResolver
import
com.yidian.yac.core.zap.ZapService
import
org.json.JSONObject
/**
* author: yinjiacheng
* date: 7/28/21 9:34 AM
* description: 加密服务
* 目前基于XDiamond(磐石)实现
*/
class
EncryptService
:
ZapService
(),
IEncryptService
{
init
{
// 初始化磐石SDK
SecretUtil
.
init
(
BuildConfig
.
IS_ENCRYPT_DEBUG_KEY
,
BuildConfig
.
DEBUG
)
BCommonManager
.
setEncryptIml
(
this
)
}
override
fun
sign
(
src
:
String
):
String
{
return
SecretUtil
.
sign
(
src
)
?:
""
}
override
fun
verifySign
(
src
:
String
,
sign
:
String
):
Boolean
{
return
SecretUtil
.
verifySign
(
src
,
sign
)
}
override
fun
rsaEncrypt
(
src
:
String
):
String
{
return
SecretUtil
.
rsaEncrypt
(
src
)
?:
""
}
override
fun
rsaDecrypt
(
src
:
String
):
String
{
return
SecretUtil
.
rsaDecrypt
(
src
)
?:
""
}
override
fun
aesEncrypt
(
src
:
String
):
String
{
return
SecretUtil
.
aesEncrypt
(
src
)
?:
""
}
override
fun
aesDecrypt
(
src
:
String
):
String
{
return
SecretUtil
.
aesDecrypt
(
src
)
?:
""
}
override
fun
onAction
(
path
:
String
,
action
:
String
,
params
:
Any
,
options
:
Any
,
resolver
:
ResultResolver
)
{
when
(
action
)
{
ZapServiceActionConstants
.
ActionRSASign
->
{
// RSA私钥签名
val
result
=
SecretUtil
.
sign
((
params
as
JSONObject
).
optString
(
"src"
))
resolver
.
success
(
JSONObject
().
put
(
"result"
,
result
))
}
ZapServiceActionConstants
.
ActionRSAVerifySign
->
{
// RSA公钥验签
val
result
=
SecretUtil
.
verifySign
((
params
as
JSONObject
).
optString
(
"src"
),
params
.
optString
(
"sign"
))
resolver
.
success
(
JSONObject
().
put
(
"result"
,
result
))
}
ZapServiceActionConstants
.
ActionRSAEncrypt
->
{
// RSA公钥加密
val
result
=
SecretUtil
.
rsaEncrypt
((
params
as
JSONObject
).
optString
(
"src"
))
resolver
.
success
(
JSONObject
().
put
(
"result"
,
result
))
}
ZapServiceActionConstants
.
ActionRSADecrypt
->
{
// RSA私钥解密
val
result
=
SecretUtil
.
rsaDecrypt
((
params
as
JSONObject
).
optString
(
"src"
))
resolver
.
success
(
JSONObject
().
put
(
"result"
,
result
))
}
ZapServiceActionConstants
.
ActionAESEncrypt
->
{
// AES加密
val
result
=
SecretUtil
.
aesEncrypt
((
params
as
JSONObject
).
optString
(
"src"
))
resolver
.
success
(
JSONObject
().
put
(
"result"
,
result
))
}
ZapServiceActionConstants
.
ActionAESDecrypt
->
{
// AES解密
val
result
=
SecretUtil
.
aesDecrypt
((
params
as
JSONObject
).
optString
(
"src"
))
resolver
.
success
(
JSONObject
().
put
(
"result"
,
result
))
}
}
}
override
fun
onExit
()
{
}
override
fun
onInit
()
{
}
}
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