Foxtable(狐表)用户栏目专家坐堂 → 关于System.Security.Cryptography加密请教


  共有3070人关注过本帖树形打印复制链接

主题:关于System.Security.Cryptography加密请教

帅哥哟,离线,有人找我吗?
chen_sheng
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:692 积分:6095 威望:0 精华:0 注册:2018/5/10 9:05:00
关于System.Security.Cryptography加密请教  发帖心情 Post By:2021/11/21 9:24:00 [只看该作者]

随着不断对狐表的深入系统安全也提上了日程
借鉴了论坛杰哥优秀的加密方案,发现一个问题,把他的加密全局函数抄下来不能编译成功,他的项目运行又没有问题
也看了没有看到有变量声明
System.Security.Cryptography= ssc
但是他的程序ssc. 是可以编译通过的,卡壳了


图片点击可在新窗口打开查看此主题相关图片如下:018bcf37-ab57-4e78-b4e4-dcaa45d2d43b.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:dingtalk_20211121091901.jpg
图片点击可在新窗口打开查看



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/21 20:09:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
chen37280600
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1265 积分:7838 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2021/11/21 21:53:00 [只看该作者]

你没改过引用和命名空间,就不能偷懒用SSC简写,用下面的标准写法吧

'加密---
'AES,ECB,PKCS7,返回Base64结果
'通过AesEncrypt(内容)使用
Public Function AesEncrypt(ByVal str As String) As String
If String.IsNullOrEmpty(str) Then
    Return ""
Else
    Dim key As String ="4hXnn8NUtss5OUTR" '与前端约定好的固定秘钥
    Dim toEncryptArray As Byte() = Encoding.UTF8.GetBytes(str)
    Dim rm  = New System.Security.Cryptography.RijndaelManaged
    rm.Key = Encoding.UTF8.GetBytes(key)
    rm.Mode = System.Security.Cryptography.CipherMode.ECB
    rm.Padding = System.Security.Cryptography.PaddingMode.PKCS7
    
    Dim cTransform = rm.CreateEncryptor()
    Dim resultArray As Byte() = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length)
    Return Convert.ToBase64String(resultArray, 0, resultArray.Length)
End If
End Function
'加密---

'解密---
'通过AesDecrypt(内容)使用
Public Function AesDecrypt(ByVal str As String) As String
If String.IsNullOrEmpty(str) Then
    Return ""
Else
    Dim key As String ="4hXnn8NUtss5OUTR" '与前端约定好的固定秘钥
    Dim toEncryptArray As Byte() = Convert.FromBase64String(str)
    Dim rm  = New System.Security.Cryptography.RijndaelManaged
    rm.Key = Encoding.UTF8.GetBytes(key)
    rm.Mode = System.Security.Cryptography.CipherMode.ECB
    rm.Padding = System.Security.Cryptography.PaddingMode.PKCS7
    
    Dim cTransform = rm.CreateDecryptor()
    Dim resultArray As Byte() = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length)
    Return Encoding.UTF8.GetString(resultArray)
End If
End Function
'解密---
[此贴子已经被作者于2021/11/21 21:55:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cnsjroom
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(chen37280600)你没改过引用和命名空间,就不...  发帖心情 Post By:2021/11/22 0:07:00 [只看该作者]

老师  请教一下  这个全局加密和解密的函数代码  怎么进行使用呢?


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/22 8:37:00 [只看该作者]

直接调用:msgbox(AesEncrypt("加密的字符串"))

如果不是用来在网页前端加密,建议使用foxtable提供的加解密函数,不用搞那么多花样

 回到顶部
帅哥哟,离线,有人找我吗?
chen_sheng
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:692 积分:6095 威望:0 精华:0 注册:2018/5/10 9:05:00
  发帖心情 Post By:2021/11/23 16:08:00 [只看该作者]

非常感谢杰哥 及蓝版的指导!

 回到顶部