㈠ sql数据库中字段如何加密
你将你的数据先加密好了。再存储到数据库。读取的时候,解密了再显示就可以了
㈡ 请问SQL怎么对数据进行加密
--以下代码包括创建密钥,加密,解密和删除密钥
/*
1.利用对称密钥
搭配EncryptByKey进行数据加密
使用DecryptByKey函数进行解密
这种方式比较适合大数据量
*/
='XIAOMA'
='ZXCCERTIFICATE',EXPIRY_DATE='2015/01/01'
CREATESYMMETRICKEYSYM_TOMWITHALGORITHM=
OPENSYMMETRICKEYSYM_
SELECTCONVERT(NVARCHAR(10),Decryptbykey((Encryptbykey(Key_guid('SYM_TOM'),N'TOM3'))))
CLOSESYMMETRICKEYSYM_TOM
DROPSYMMETRICKEYSYM_TOM
DROPCERTIFICATETOMCERT;
DROPMASTERKEY;
--或--
=AES_256ENCRYPTIONBYPASSWORD='ZXC123456'
='ZXC123456'
SELECTCONVERT(VARCHAR(10),Decryptbykey(Encryptbykey(Key_guid('ZXC'),'YHDH_C')))
CLOSESYMMETRICKEYZXC;
DROPSYMMETRICKEYZXC;
/*
2.利用非对称密钥
搭配EncryptByAsymKey进行数据加密
使用DecryptByAsymKey函数进行解密
用于更高安全级别的加解密数据
*/
='XIAOMA'
=RSA_2048ENCRYPTIONBYPASSWORD='ZXC123456'
(DECRYPTIONBYPASSWORD='ZXC123456')
SELECTCONVERT(VARCHAR(100),Decryptbyasymkey(Asymkey_id('ABC'),Encryptbyasymkey(Asymkey_id('ABC'),'ZXC123456')))
DROPASYMMETRICKEYABC;
DROPMASTERKEY
/*
3.利用凭证的方式
搭配EncryptByCert进行加密
DecryptByCert函数进行解密
比较类似非对称密钥
*/
='XIAOMA'
='ZXCCERTIFICATE',EXPIRY_DATE='2015/01/01'
SELECTCONVERT(VARCHAR(20),Decryptbycert(Cert_id('ZXC'),Encryptbycert(Cert_id('ZXC'),'123456')))
DROPCERTIFICATEZXC;
DROPMASTERKEY
--或--
='Mary5',
SECRET='123456';
ALTERLOGINUser1
ADDCREDENTIALAlterEgo
DropCREDENTIALAlterEgo
DROPCREDENTIALAlterEgo
/*
4.利用密码短语方式
搭配EncryptBypassPhrase进行加密
使用DecryptByPassPhrase函数来解密
比较适合一般的数据加解密
*/
SELECTCONVERT(VARCHAR(100),Decryptbypassphrase('xiaoma',Encryptbypassphrase('xiaoma','123456')))
㈢ SQLsever数据库加密算法,C#
//这个是我拿别人固定密匙改成随机密匙的加解密静态类,希望对你有帮助
//做成随机密匙的想法是:让同一个明文密码,存在数据库中的密文是完全不一样的(如果是固定密匙,则明文一样则密文就完全一样)
public static class MakePW //静态类:加密解密类
{
//默认密钥向量
private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
/// 加密密钥,要求为8位
//private static string TKey = "T1234567";
public static string EncryptPW(string encryptString)//加密
{
string encryptKey;
encryptKey = TKey(8);//获得8位随机钥匙
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey);
byte[] rgbIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return encryptKey + Convert.ToBase64String(mStream.ToArray());
}
catch
{
return encryptString;//返回钥匙+加密后的字符串
}
}
public static string DecryptPW(string decryptString)//解密
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptString.Substring(0,8));//获得密钥
decryptString = decryptString.Substring(8, decryptString.Length - 8);//去除密钥
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return decryptString;
}
}
internal static string TKey(int pwdlen)//产生随机字符串,获取随机密钥
{
string pwdchars = "~!@#$%^&*()_+";
string tmpstr = "";
int iRandNum;
Random rnd = new Random();
for (int i = 0; i < pwdlen; i++)
{
iRandNum = rnd.Next(pwdchars.Length);
tmpstr += pwdchars[iRandNum];
}
return tmpstr;
}
}
㈣ 教你怎样实现SQL密文加密,不可反编译
use Tempdbgoifobject_ID('fn_ACITEncryption')isnotnull dropfunction fn_ fn_ACITEncryption( @Str nvarchar( 4000),--加密的字符串 @Flag bit= 1,--1、加密0、解密 @Key nvarchar( 50)--密文)returnsnvarchar( 4000)--这里可转换成二进制withEncryptionasbeginDeclare @LenStr int, @i int, @Str2 nvarchar( 4000), @Split nvarchar( 2), @LenKey intselect @Str= @Str+'A', @LenStr=len( @Str), @i= 1, @Str2='', @LenKey=Len( @Key+'A')- 1while @i< @LenStr select @Split=substring( @Str, @i, 1), @Split=nchar((unicode( @Split)+case @Flag when 1 thenunicode(substring( @Key+'A', @i% @LenKey+ 1, 1))- 1 when 0 then 65535-unicode(substring( @Key+'A', @i% @LenKey+ 1, 1)) else 0 end)% 65535+cast( @Flag asint)), @Str2= @Str2+ @Split, @i= @i+ 1return @Str2 endgoselect dbo. fn_ACITEncryption( N'Roy', 1,'123')as加密后字符串 /*加密后字符串------------------------------(1 个资料列受到影响) */select dbo. fn_ACITEncryption( N, 0,'123')as解密后字符串/*解密后字符串--------------------------Roy (1 个资料列受到影响)*/
㈤ sql中varbinary加密的简单方法有什么
1、可以使用二个SQLServer未公开的函数:
>PwdCncrypt(),实现对输入数据进行加密后返回二进制形式的加密内容,
>PwdCompare(),用于检查明文是否与加密的二进制数据内容相等,没有解密函数。
这二个函数主要是用于SQLServer内部自己调用。优点是调用方便,缺点是这二个函数没有公开,就意味着可能改变,并且不兼容原来的,在使用上存在风险。
2、若想控制密钥,有4个函数
ENCRYPTBYASYMKEY() --非对称密钥
ENCRYPTBYCERT() --证书加密
ENCRYPTBYKEY() --对称密钥
ENCRYPTBYPASSPHRASE() --通行短语(PassPhrase)加密
使用起来相对会复杂些。
㈥ sql数据加密有几种方法
对sql中的数据进行加密,有5种方法,
1、利用CONVERT改变编码方式:
利用该函数把文字或数据转换成VARBINARY。但该方式不具备保护数据的能力,仅避免浏览数据的过程中能直接看到敏感数据的作用。
2、利用对称密钥:
搭配EncryptByKey进行数据加密。使用DecryptByKey函数进行解密。这种方式比较适合大数据量。因为对称密钥的过程耗用资源较少。
3、利用非对称密钥:
搭配EncryptByAsymKey进行数据加密。使用DecryptByAsymKey函数进行解密。用于更高安全级别的加解密数据。因为耗用资源叫多。
4、利用凭证的方式:
搭配EncryptByCert进行加密和DecryptByCert函数进行解密。比较类似非对称密钥。
5、利用密码短语方式:
搭配EncryptBypassPhrase进行加密,使用DecryptByPassPhrase函数来解密。可以使用有意义的短语或其他数据行,当成加密、解密的关键字,比较适合一般的数据加解密。
(6)sql中的加密算法扩展阅读:
sql数据库的组成:
在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成:
1、一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。
2、一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。
3、一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。
4、一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。
5、用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。
6、SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。
SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。
参考资料来源:网络-SQL数据库
㈦ SQL数据库中加密密码解密
一般都是MD5 一般是不能解密的。。 可以通过已知的md5值替换掉 原来的密码值就把密码改了
㈧ 如何对sqlserver2005数据库中表字段进行加密,解密
那你可以通过编程
在保存的时候,先把字段内容进得加密,然后再保存到数据库中。
读取的时候,读出数据后,再进行解密操作。
㈨ 请教SQL高手,如何在SQL SERVER 2005中使用MD5算法,加密数据表中的内容
select
sys.fn_VarBinToHexStr(HashBytes('MD5',
'reaky'))
不过加了密就解不出来了哦,你也可以参考下面连接中牛人自己写的加密算法
http://www.itpub.net/thread-924137-1-1.html
㈩ 数据库字段加密算法
字符对照表,加密
按下列方式找加密规律
明文 密文
1 8
11 8f
111 8fk
2
3
4
12
13
14
.....