SQL SERVER 2005 加密解密数据
2010-03-12 16:52
330 查看
应用SQL Server 2005的数据加密功能实现对敏感数据的保护。
对称加密
--======================================================================
/*
Create Symmetric Encryption by password
*/
--======================================================================
DECLARE @PSW1 NVARCHAR(400),
@PSW2 NVARCHAR(400)
SET @PSW1 = 'TestKeyPsw';
SET @PSW2 = 'TestKeyPswNew'
--Create Symmetric
/*
CREATE SYMMETRIC KEY Symmetric_Key_Test
--AUTHORIZATION User2
WITH ALGORITHM = RC4 --option: DES | TRIPLE_DES | TRIPLE_DES_3KEY | RC2 | RC4 | RC4_128 | DESX | AES_128 | AES_192 | AES_256
ENCRYPTION BY PASSWORD = 'TestKeyPsw'
*/
--modify Symmetric Encryption password. In actually, it can only add or drop, if you want to modify, just add a new and drop the old one
/*
EXEC ('Open Symmetric Key Symmetric_key_Test DECRYPTION by Password=N'''+ @PSW1 +''';')
ALTER SYMMETRIC KEY Symmetric_key_Test
ADD ENCRYPTION BY PASSWORD = N'TestKeyPswNew';
-- DROP ENCRYPTION BY PASSWORD = N'TestKeyPsw';
*/
--DROP Symmetric Key
/*
DROP SYMMETRIC KEY Symmetric_Key_Test
*/
--EXEC ('Open Symmetric Key Symmetric_key_Test DECRYPTION by Password=N''TestKeyPsw'';')
--SELECT * FROM sys.openkeys
/*
-- create a temptable to test
CREATE TABLE #tempTable
(
desction VARBINARY(4000)
)
TRUNCATE TABLE #tempTable
INSERT INTO #tempTable
select encryptbykey(key_guid('Symmetric_key_Test'), CONVERT(NVARCHAR(MAX),'123456'))
*/
EXEC ('Open Symmetric Key Symmetric_key_Test DECRYPTION by Password=N'''+ @PSW1 +''';')
SELECT desction,CONVERT(nvarchar(max), DecryptByKey(desction))AS DecryptByKeyDesction FROM #tempTable
--------------------------------------------------------------------------------------------------------
非对称加密
--======================================================================
/*
Create Asymmetric Encryption by password
*/
--======================================================================
--Create Asymmetric
/*
CREATE ASYMMETRIC KEY Asymmertric_key_Test
WITH ALGORITHM = RSA_2048 --option: RSA_512 | RSA_1024 | RSA_2048
ENCRYPTION BY PASSWORD = N'TestKeyPsw';
*/
--modify Asymmetric password
/*
ALTER ASYMMETRIC KEY Asymmertric_key_Test
WITH PRIVATE KEY (
DECRYPTION BY PASSWORD = 'TestKeyPsw', --old password
ENCRYPTION BY PASSWORD = 'TestKeyPswNew'); --new password
*/
--DROP Asymmetric Key
/*
DROP ASYMMETRIC KEY Asymmertric_key_Test
*/
--SELECT * FROM sys.asymmetric_keys_Test
/*
-- create a temptable to test
CREATE TABLE #tempTable
(
desction VARBINARY(4000)
)
TRUNCATE TABLE #tempTable
INSERT INTO #tempTable VALUES (EncryptByAsymKey(AsymKey_ID( 'Asymmertric_key_Test'), N'123456'))
*/
SELECT desction,CONVERT(NVARCHAR(1000),DecryptByAsymKey( AsymKey_Id( 'Asymmertric_key_Test'), desction, N'TestKeyPsw')) as DecryptDesction
FROM #tempTable
对称加密
--======================================================================
/*
Create Symmetric Encryption by password
*/
--======================================================================
DECLARE @PSW1 NVARCHAR(400),
@PSW2 NVARCHAR(400)
SET @PSW1 = 'TestKeyPsw';
SET @PSW2 = 'TestKeyPswNew'
--Create Symmetric
/*
CREATE SYMMETRIC KEY Symmetric_Key_Test
--AUTHORIZATION User2
WITH ALGORITHM = RC4 --option: DES | TRIPLE_DES | TRIPLE_DES_3KEY | RC2 | RC4 | RC4_128 | DESX | AES_128 | AES_192 | AES_256
ENCRYPTION BY PASSWORD = 'TestKeyPsw'
*/
--modify Symmetric Encryption password. In actually, it can only add or drop, if you want to modify, just add a new and drop the old one
/*
EXEC ('Open Symmetric Key Symmetric_key_Test DECRYPTION by Password=N'''+ @PSW1 +''';')
ALTER SYMMETRIC KEY Symmetric_key_Test
ADD ENCRYPTION BY PASSWORD = N'TestKeyPswNew';
-- DROP ENCRYPTION BY PASSWORD = N'TestKeyPsw';
*/
--DROP Symmetric Key
/*
DROP SYMMETRIC KEY Symmetric_Key_Test
*/
--EXEC ('Open Symmetric Key Symmetric_key_Test DECRYPTION by Password=N''TestKeyPsw'';')
--SELECT * FROM sys.openkeys
/*
-- create a temptable to test
CREATE TABLE #tempTable
(
desction VARBINARY(4000)
)
TRUNCATE TABLE #tempTable
INSERT INTO #tempTable
select encryptbykey(key_guid('Symmetric_key_Test'), CONVERT(NVARCHAR(MAX),'123456'))
*/
EXEC ('Open Symmetric Key Symmetric_key_Test DECRYPTION by Password=N'''+ @PSW1 +''';')
SELECT desction,CONVERT(nvarchar(max), DecryptByKey(desction))AS DecryptByKeyDesction FROM #tempTable
--------------------------------------------------------------------------------------------------------
非对称加密
--======================================================================
/*
Create Asymmetric Encryption by password
*/
--======================================================================
--Create Asymmetric
/*
CREATE ASYMMETRIC KEY Asymmertric_key_Test
WITH ALGORITHM = RSA_2048 --option: RSA_512 | RSA_1024 | RSA_2048
ENCRYPTION BY PASSWORD = N'TestKeyPsw';
*/
--modify Asymmetric password
/*
ALTER ASYMMETRIC KEY Asymmertric_key_Test
WITH PRIVATE KEY (
DECRYPTION BY PASSWORD = 'TestKeyPsw', --old password
ENCRYPTION BY PASSWORD = 'TestKeyPswNew'); --new password
*/
--DROP Asymmetric Key
/*
DROP ASYMMETRIC KEY Asymmertric_key_Test
*/
--SELECT * FROM sys.asymmetric_keys_Test
/*
-- create a temptable to test
CREATE TABLE #tempTable
(
desction VARBINARY(4000)
)
TRUNCATE TABLE #tempTable
INSERT INTO #tempTable VALUES (EncryptByAsymKey(AsymKey_ID( 'Asymmertric_key_Test'), N'123456'))
*/
SELECT desction,CONVERT(NVARCHAR(1000),DecryptByAsymKey( AsymKey_Id( 'Asymmertric_key_Test'), desction, N'TestKeyPsw')) as DecryptDesction
FROM #tempTable
相关文章推荐
- SQL Server 2005: 如何让用户只能加密数据却不能解密数据
- 解密SQL SERVER 2005加密存储过程,函数
- Sql Server数据的加密与解密
- SQL Server 2005 数据加密
- 怎样对SQL Server 2005加密的存储过程进行解密
- SQL Server 2005加密与解密
- 怎样对SQL Server 2005加密的存储过程进行解密
- sql server中如何对已经加密的数据进行解密?谢谢回答!!
- SQL SERVER 2005数据加密 .
- 解密SQL SERVER 2005加密存储过程,函数
- 把一个用sql server 2005内置加密方法加密数据的DB从一台电脑备份后,还原到另外一台电脑上,出现的问题的处理办法
- SQL Server 2005 Error Diagnostic 2: 无法解密“Dsn”配置设置的加密值
- sql server 2005/2008 加密存储过程解密
- SQL Server 2005加密与解密
- 解密SQL SERVER 2005加密存储过程 函数使用
- 解密SQL SERVER 2005加密存储过程,函数
- SQL Server 2005对数据进行加密
- sql server 2005/2008 加密存储过程解密脚本/软件推荐
- [导入]SQL Server 2005 Error Diagnostic 2: 无法解密“Dsn”配置设置的加密值
- 解密SQL SERVER 2005加密存储过程,函数