Foxtable(狐表)用户栏目专家坐堂 → [讨论]看了“请教,EncryptText(Value, Key1, Key2)后,其它编程软件如何解密?”感觉很失落啊!


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

主题:[讨论]看了“请教,EncryptText(Value, Key1, Key2)后,其它编程软件如何解密?”感觉很失落啊!

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
[讨论]看了“请教,EncryptText(Value, Key1, Key2)后,其它编程软件如何解密?”感觉很失落啊!  发帖心情 Post By:2013/11/8 8:34:00 [只看该作者]

请教,EncryptText(Value, Key1, Key2)后,存在在SQL数据库中,其它编程软件如何解密?

没办法,这个只能在foxtable中解密。

 

 

原本想用EncryptText 加密数据库某些敏感的数据,配合网页服务器,建立网站,狐表用于后台数据处理,网站用于数据对外查询。

 

没想到这个加密解密只能在狐表中用,不通用的,真晕死了

 

C#中的加密解密

Encrypt(targetValue, "Project")
Decrypt(targetValue, "Project")

//加密算法
        /// <summary>
        /// 进行DES加密。
        /// </summary>
        /// <param name="pToEncrypt">要加密的字符串。</param>
        /// <param name="sKey">密钥,且必须为8位。</param>
        /// <returns>以Base64格式返回的加密字符串。</returns>
        public string Encrypt(string pToEncrypt, string sKey)

 

还有其他的办法或者其他的函数可以在狐表中实现加密解密,而且可以在其他程序中通用的?

 

SQL数据库为了保密,是否还需要对特定的字段进行加密?

 


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/8 8:37:00 [只看该作者]

呵呵,没有办法呢,除非你自己写一套加密的算法. 封装成自定义函数.

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2013/11/8 9:08:00 [只看该作者]

以下是引用Bin在2013-11-8 8:37:00的发言:
没办法,这个只能在foxtable中解密。

那能否直接调用C#中的加密算法?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/11/8 9:09:00 [只看该作者]

可以,找vb.net或c#的加密加密例子

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/8 9:09:00 [只看该作者]

C#没有自带加密算法的呀.  C#的代码可以转换成VB.NET 然后再狐表使用.

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2013/11/8 13:10:00 [只看该作者]

以下是引用Bin在2013-11-8 9:09:00的发言:
C#没有自带加密算法的呀.  C#的代码可以转换成VB.NET 然后再狐表使用.

也是需要自己编写代码的,没有狐表那么的方便

 

不知道代码怎么转成vb.net,怎么引用

C#是我同事再用,负责网页设计,我负责后台数据管理,用狐表处理收集

C#有这么个函数:

加密:Encrypt(targetValue, "key")
解密:Decrypt(targetValue, "key")

 

怎么用在狐表中,望高手指点!


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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By: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 在附件中

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:mscorlib.zip

高手帮忙引用一下,谢谢


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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2013/11/8 13:34:00 [只看该作者]

狐表中的EncryptText 和 DecryptText 使用了两个密钥,要是能省略一个,可以和mscorlib.dll 里面的加密解密通用就好了

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9603 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By: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位,使用的时候要注意哦,不然会出错的。


 回到顶部