Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用C语言实现SQL Server加密/解密#_C#_Sql_Sql Server_Visual Studio Lightswitch_Lightswitch 2013 - Fatal编程技术网

C# 用C语言实现SQL Server加密/解密#

C# 用C语言实现SQL Server加密/解密#,c#,sql,sql-server,visual-studio-lightswitch,lightswitch-2013,C#,Sql,Sql Server,Visual Studio Lightswitch,Lightswitch 2013,我正在做一个项目,接下来我想学习的是添加敏感数据,并对其进行加密/解密 我已经使用以下代码(使用SQL SERVER)完成了这方面的基础工作: 现在我知道我可以用它来加密数据,我有一个查询也可以用SQL Server对其进行解密,但是在添加数据时,我需要在C#级别执行此操作 例如,我有一个C#Windows表单,可以接受名字、姓氏、信用卡号码)。添加后的数据将保存到SQL Server表中,我现在的问题是如何在保存时对数据进行加密,如果我想查看数据,是否可以按一下按钮对其进行解密(目前) 谢谢你

我正在做一个项目,接下来我想学习的是添加敏感数据,并对其进行加密/解密

我已经使用以下代码(使用SQL SERVER)完成了这方面的基础工作:

现在我知道我可以用它来加密数据,我有一个查询也可以用SQL Server对其进行解密,但是在添加数据时,我需要在C#级别执行此操作

例如,我有一个C#Windows表单,可以接受名字、姓氏、信用卡号码)。添加后的数据将保存到SQL Server表中,我现在的问题是如何在保存时对数据进行加密,如果我想查看数据,是否可以按一下按钮对其进行解密(目前)

谢谢你的帮助

--另外 我是一名学生,正在做我最后一年的项目,所以使用这样的服务会大大降低我的编程分数(虽然对研究方面有好处),基本上我希望能够将某些数据以加密方式存储在SQL Server表中,因此除非我写一个解密语句,否则我无法在SQL Server中看到它。但是,由于应用程序无论如何都需要密码,并且将具有权限级别,那么是否有其他解决方案,以便我仍然可以查看/添加/编辑应用程序中未加密的数据?如果你明白了

以及在C#中添加数据的示例:


我采取了一种不同的方法,因为这会一直导致复杂的编码和解码,这会减慢我的系统。相反,我在前端采用了JavaScript方法,并使用了CryptoJS

我已设法使用以下代码段加密我的数据,该代码段取自上述链接:

DES,三重DES DES是以前占主导地位的加密算法,并作为官方的联邦信息处理标准(FIPS)发布。由于密钥大小较小,DES现在被认为是不安全的

default.html代码

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/tripledes.js"></script>
三重DES将DES应用于每个块三次,以增加密钥大小。这种形式的算法被认为是安全的

default.htm文件

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/tripledes.js"></script>

我成功地将数据保存为加密数据,然后在查看、编辑和浏览屏幕上,根据用户权限对其进行解密,或者可以对应用程序中的所有数据进行解密。因此,该代码在数据库中是安全的(正如可能的那样),并且在上面的示例中,如果没有加密密钥(“机密密码短语”),则无法对其进行解密

您可以添加该代码来获取/保存数据吗?这将有助于建立一个有用的帖子,将你的具体情况考虑在内。如果你的意思是这样的话,不把它发送到数据库很难做到?我最好写下来;)我以前已经这样做过,所以我不会花时间去longwell,我可以添加数据,然后对其进行加密,但是应用程序无法看到任何数据。。理想情况下,我希望数据在sql server中加密,但在应用程序中仍然可见(最终将受到密码保护),因此本质上这不是基于c的(问题)。但是,您希望数据库中的每个select都返回加密数据的解密数据intead,而每次更新时,insert都使用加密数据?
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/tripledes.js"></script>
var encrypted = CryptoJS.DES.encrypt("Message", "Secret Passphrase");
var decrypted = CryptoJS.DES.decrypt(encrypted, "Secret Passphrase");
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/tripledes.js"></script>
var encrypted = CryptoJS.TripleDES.encrypt("Message", "Secret Passphrase");

var decrypted = CryptoJS.TripleDES.decrypt(encrypted, "Secret Passphrase");