|
发表于 2021-7-1 10:10:02
|
显示全部楼层
内蒙古自治区包头市
.版本 2
.子程序 回调接口_加密, 文本型, 公开, encrypt
.参数 text, 文本型
.参数 key, 文本型
.参数 Test_text, 文本型, 可空, 测试固定文本
.局部变量 random, 字节集
.局部变量 bin, 字节集
.局部变量 msg_len, 字节集
.局部变量 encode_encrypt, 字节集
.局部变量 aes_msg, 字节集
.局部变量 encode_aes_key, 文本型
.局部变量 vi, 文本型
random = 到字节集 (文本_取随机字符 (4, 1) + 文本_取随机字符 (8, 2) + 文本_取随机字符 (4, 4))
encode_aes_key = 编码_URL解码 (字节集_到文本 (编码_BASE64解码 (#aesKey, )), )
vi = 取文本左边 (encode_aes_key, 16)
' [random(16B) + msg_len(4B) + msg + $key]
msg_len = { 0, 0, 0, 7 }
.如果 (Test_text = “”)
encode_encrypt = random + msg_len + 到字节集 (text) + 到字节集 (#corpid)
.否则
encode_encrypt = 到字节集 (Test_text)
.如果结束
' 调试输出 (“encrypt”, 字节集_到文本 (encode_encrypt))
aes_msg = 对称加密 (到字节集 (encode_encrypt), 到字节集 (encode_aes_key), #对称算法_AES_256_CBC, #数据填充_PKCS7_PADDING, 到字节集 (vi))
' 调试输出 (到文本 (编码_BASE64编码A (aes_msg)))
返回 (到文本 (编码_BASE64编码A (aes_msg)))
.版本 2
.支持库 e2ee
.子程序 回调接口_解密, 文本型, 公开, decrypt
.参数 content, 文本型
.局部变量 c_content, 字节集
.局部变量 encode_aes_key, 文本型
.局部变量 vi, 文本型
.局部变量 bin, 字节集
.局部变量 str, 文本型
c_content = 编码_BASE64解码 (content, )
encode_aes_key = 编码_URL解码 (字节集_到文本 (编码_BASE64解码 (#aesKey, )), )
' 调试输出 (编码_BASE64解码 (#aesKeyTest, ))
' 调试输出 (取文本长度 (“4g5j64qlyl3zvetqxz5jiocdr586fn2zvjpa8zls3ij”))
vi = 取文本左边 (encode_aes_key, 16)
' 调试输出 (“AES_key”, encode_aes_key)
' 调试输出 (“AES_vi”, vi)
' str = 编码_BASE64编码 (对称加密 (到字节集 (“111222333”), 到字节集 (“DSFBAKLANOIQWPDANSDKHWOQNLKSA21T”), #对称算法_AES_256_CBC, #数据填充_PKCS7_PADDING, 到字节集 (“DSFBAKLANOIQWPDA”)))
bin = 对称解密 (c_content, 到字节集 (encode_aes_key), #对称算法_AES_256_CBC, #数据填充_PKCS7_PADDING, 到字节集 (vi))
' 9hFDLYXj37x0iNXv{"EventType":"check_url"}ding7d7da86a4720960d35c2f4657eb6378f
bin = 字节集_取右边 (bin, 字节集_取长度 (bin) - 20)
bin = 字节集_取左边 (bin, 字节集_取长度 (bin) - 字节集_取长度 (到字节集 (#corpid)))
' 调试输出 (bin)
' 调试输出 (“解密内容”, 字节集_到文本 (bin))
' URL解码 (, #文本)
返回 (URL解码 (字节集_到文本 (bin), #文本编码格式_UTF8))
|
|