以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [讨论]看了“请教,EncryptText(Value, Key1, Key2)后,其它编程软件如何解密?”感觉很失落啊! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=42302) |
||||
-- 作者:浙江仔 -- 发布时间:2013/11/8 8:34:00 -- [讨论]看了“请教,EncryptText(Value, Key1, Key2)后,其它编程软件如何解密?”感觉很失落啊!
原本想用EncryptText 加密数据库某些敏感的数据,配合网页服务器,建立网站,狐表用于后台数据处理,网站用于数据对外查询。
没想到这个加密解密只能在狐表中用,不通用的,真晕死了
C#中的加密解密 Encrypt(targetValue, "Project") //加密算法
还有其他的办法或者其他的函数可以在狐表中实现加密解密,而且可以在其他程序中通用的?
SQL数据库为了保密,是否还需要对特定的字段进行加密?
|
||||
-- 作者:Bin -- 发布时间:2013/11/8 8:37:00 -- 呵呵,没有办法呢,除非你自己写一套加密的算法. 封装成自定义函数. |
||||
-- 作者:浙江仔 -- 发布时间:2013/11/8 9:08:00 -- 以下是引用Bin在2013-11-8 8:37:00的发言:
没办法,这个只能在foxtable中解密。 那能否直接调用C#中的加密算法? |
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/11/8 9:09:00 -- 可以,找vb.net或c#的加密加密例子 |
||||
-- 作者:Bin -- 发布时间:2013/11/8 9:09:00 -- C#没有自带加密算法的呀. C#的代码可以转换成VB.NET 然后再狐表使用. |
||||
-- 作者:浙江仔 -- 发布时间:2013/11/8 13:10:00 -- 以下是引用Bin在2013-11-8 9:09:00的发言:
C#没有自带加密算法的呀. C#的代码可以转换成VB.NET 然后再狐表使用. 也是需要自己编写代码的,没有狐表那么的方便
不知道代码怎么转成vb.net,怎么引用 C#是我同事再用,负责网页设计,我负责后台数据管理,用狐表处理收集 C#有这么个函数: 加密:Encrypt(targetValue, "key")
怎么用在狐表中,望高手指点! |
||||
-- 作者:浙江仔 -- 发布时间:2013/11/8 13:17:00 -- 找到一个: NET Framework 类库
DESCryptoServiceProvider 类 更新:2010 年 5 月 定义访问数据加密标准 (DES) 算法的加密服务提供程序 (CSP) 版本的包装对象。此类不能被继承。 继承层次结构 System..::.Object System.Security.Cryptography..::.SymmetricAlgorithm System.Security.Cryptography..::.DES System.Security.Cryptography..::.DESCryptoServiceProvider 命名空间:System.Security.Cryptography 程序集:mscorlib(在 mscorlib.dll 中)
mscorlib.dll 在附件中
高手帮忙引用一下,谢谢 |
||||
-- 作者:浙江仔 -- 发布时间:2013/11/8 13:34:00 -- 狐表中的EncryptText 和 DecryptText 使用了两个密钥,要是能省略一个,可以和mscorlib.dll 里面的加密解密通用就好了 |
||||
-- 作者:浙江仔 -- 发布时间:2013/11/8 14:02:00 -- 找到这么一个: 在vb.NET中编写DEC加密程序是很容易的事情,因为vb.NET的类库中就自带了相应的函数,下面分别是加密函数和解密函数。 Public Shared Function Encrypt(ByVal pToEncrypt As String, ByVal sKey As String) As String Dim DES As New DESCryptoServiceProvider() Dim inputByteArray() As Byte inputByteArray = Encoding.Default.GetBytes(pToEncrypt) \'\'建立加密对象的密钥和偏移量 \'\'原文使用ASCIIEncoding.ASCII方法的GetBytes方法 \'\'使得输入密码必须输入英文文本 DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey) DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey) \'\'写二进制数组到加密流 \'\'(把内存流中的内容全部写入) Dim ms As New System.IO.MemoryStream() Dim cs As New CryptoStream(ms, DES.CreateEncryptor, CryptoStreamMode.Write) \'\'写二进制数组到加密流 \'\'(把内存流中的内容全部写入) cs.Write(inputByteArray, 0, inputByteArray.Length) cs.FlushFinalBlock() \'\'建立输出字符串 Dim ret As New StringBuilder() Dim b As Byte For Each b In ms.ToArray() ret.AppendFormat("", b) Next Return ret.ToString() End Function ------------------------------------------------------------------ 解密函数: Public Shared Function Decrypt(ByVal pToDecrypt As String, ByVal sKey As String) As String Dim DES As New DESCryptoServiceProvider() \'\'把字符串放入byte数组 Dim len As Integer len = pToDecrypt.Length / 2 - 1 Dim inputByteArray(len) As Byte Dim x, i As Integer For x = 0 To len i = Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16) inputByteArray(x) = CType(i, Byte) Next \'\'建立加密对象的密钥和偏移量,此值重要,不能修改 DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey) DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey) Dim ms As New System.IO.MemoryStream() Dim cs As New CryptoStream(ms, DES.CreateDecryptor, CryptoStreamMode.Write) cs.Write(inputByteArray, 0, inputByteArray.Length) cs.FlushFinalBlock() Return Encoding.Default.GetString(ms.ToArray) End Function ------------------------------------------- 两个函数中第一个参数是待加密或解密的字符串,sKey是使用的密钥,必须是8位,使用的时候要注意哦,不然会出错的。 |