用什么加密算法好呢? 加密后密码长度为32位的,可以适合几千万数据不重复的,相同的加密数据得到的加密结果一样。求指点。注:不用MD5,MD5大数据量好象有重复的。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 除了MD5,想不到好的方法.其他内容可参考:SQL 2005的DES加密算法http://topic.csdn.net/u/20100427/20/cb4e75ae-552f-443d-98ee-be1d0ddc0aa3.html?50253CREATE SYMMETRIC KEY key1 WITH ALGORITHM=DES ENCRYPTION BY PASSWORD='abc$123'GOOPEN SYMMETRIC KEY key1 DECRYPTION BY PASSWORD='abc$123'DECLARE @str NVARCHAR(100),@Encrypted VARBINARY(MAX)SET @str=N'要加密的字串' SELECT @Encrypted=ENCRYPTBYKEY(KEY_GUID('key1'),@str)SELEcT '加密'=@Encrypted ,'解密'=CAST(DECRYPTBYKEY(@Encrypted) AS NVARCHAR(100))CLOSE SYMMETRIC KEY key1GODROP SYMMETRIC KEY key1GOsql2005数据加密http://topic.csdn.net/u/20100502/20/c69df313-cd51-4801-8ff4-e8ab48f62d25.html?63821 public String kljm(String dm, String kl) { String mw, cmm; int k, i, tmp, a, hf, lf, bytes = 16; int mm[], l, rand_seed; rand_seed = 12345; int len = kl.length(); if (len >= 12) len = 12; mw = kl.substring(0, len) + dm.trim(); l = mw.length(); if (bytes > 100) bytes = 100; if (l < bytes) { for (l = l; l <= bytes; l++) { rand_seed = (31527 * rand_seed + 3) % 32768; a = rand_seed % 256; if (a < 32 || a > 127) a = (int) ('a'); mw = mw + (char) (a); } } mm = new int[100]; for (l = 0; l < 100; l++) mm[l] = 0; for (l = 0; l < bytes; l++) { a = (int) mw.charAt(l); for (i = 1; i <= 8; i++) { if (a >= 128) { a -= 128; for (k = 0; k < bytes; k++) { rand_seed = (31527 * rand_seed + 3) % 32768; mm[k] += rand_seed % 256; } } else { for (k = 1; k <= bytes; k++) rand_seed = (31527 * rand_seed + 3) % 32768; } a *= 2; } } for (k = bytes - 1; k >= 0; k--) { if (k >= 1) mm[k - 1] += mm[k] / 256; mm[k] = mm[k] % 256; } cmm = ""; for (k = 0; k < bytes; k++) { hf = mm[k] / 16; if (hf < 10) { cmm = cmm + (char) (hf + (short) ('0')); } else { cmm = cmm + (char) (hf + (short) ('A') - 10); } lf = mm[k] % 16; if (lf < 10) { cmm = cmm + (char) (lf + (short) ('0')); } else { cmm = cmm + (char) (lf + (short) ('A') - 10); } } return cmm; }网上这个方法不知道好用不,大家知道不? 相同的加密数据得到的加密结果一样。GUID 是不是不可以呀。 USE tempdbGO-- 建立使用密码加密私钥的非对称密钥CREATE ASYMMETRIC KEY ASYM_TestWITH ALGORITHM = RSA_512ENCRYPTION BY PASSWORD = N'abc.124'GO-- 加密/解密数据SELECT Encrypt = ENCRYPTBYASYMKEY(ASYMKEY_ID(N'ASYM_Test'), N'加密'), Decrypt = CONVERT(nvarchar(100), DECRYPTBYASYMKEY( ASYMKEY_ID(N'ASYM_Test'), ENCRYPTBYASYMKEY(ASYMKEY_ID(N'ASYM_Test'), N'解密'), N'abc.124'))GO-- 删除测试环境DROP ASYMMETRIC KEY ASYM_TestgoUSE tempdbGO-- 创建使用密码加密的对称密钥CREATE SYMMETRIC KEY SYM_TestWITH ALGORITHM = AES_128ENCRYPTION BY PASSWORD = N'abc.password_1'-- 添加一个加密对称密钥的密码-- 也可以在创建对称密钥时, 在 ENCRYPTION BY 子句中指定两个密码(指定两个 PASSWORD 项)OPEN SYMMETRIC KEY SYM_Test DECRYPTION BY PASSWORD = N'abc.password_1'ALTER SYMMETRIC KEY SYM_TestADD ENCRYPTION BY PASSWORD = N'abc.password_2'CLOSE SYMMETRIC KEY SYM_TestGO-- 使用对称密钥加密数据OPEN SYMMETRIC KEY SYM_Test DECRYPTION BY PASSWORD = N'abc.password_1'DECLARE @ciphertext varbinary(1000)SELECT @ciphertext = ENCRYPTBYKEY(KEY_GUID(N'SYM_Test'), N'测试对称密钥加密')CLOSE SYMMETRIC KEY SYM_Test-- 使用另一个密码打开对称密钥进行数据解密OPEN SYMMETRIC KEY SYM_Test DECRYPTION BY PASSWORD = N'abc.password_2'SELECT CONVERT(nvarchar(10), DECRYPTBYKEY(@ciphertext))CLOSE SYMMETRIC KEY SYM_TestGO-- 删除测试环境DROP SYMMETRIC KEY SYM_Test 加密方法太多不用SQL自身的,也可自己写一个教你怎樣實現SQL密文加密,不可反編譯http://blog.csdn.net/roy_88/article/details/4801917 顶,有没有JAVA的呀,加完密是32位的不?? AES SQL创建数据库时出现错误 5105 Microsoft SQL Server 2005 在复制拓扑中可以包含从 Oracle 8.0.5 版本开始的 Oracle 发布服务器。 刚刚完成的原创两篇文章,一篇关于全文索引,一篇关于变量赋值的探讨。欢迎阅读。 sqlserver中全文检索里分词的困惑,“超级女”查不到.... 时间查询问题?就是当前时间之前的数据,如何操作?请指教,谢谢 请教COUNT函数中对空值的处理,谢谢 开帖 问一个求和的sql 语句,简单点的 开发 如何清空一个for replication的表??? 非常简单的一张表,和令人头痛的一个查询。盼高手 数据库文件加密
http://topic.csdn.net/u/20100427/20/cb4e75ae-552f-443d-98ee-be1d0ddc0aa3.html?50253CREATE SYMMETRIC KEY key1 WITH ALGORITHM=DES
ENCRYPTION BY PASSWORD='abc$123'
GOOPEN SYMMETRIC KEY key1
DECRYPTION BY PASSWORD='abc$123'DECLARE @str NVARCHAR(100),@Encrypted VARBINARY(MAX)
SET @str=N'要加密的字串'
SELECT @Encrypted=ENCRYPTBYKEY(KEY_GUID('key1'),@str)
SELEcT '加密'=@Encrypted ,'解密'=CAST(DECRYPTBYKEY(@Encrypted) AS NVARCHAR(100))
CLOSE SYMMETRIC KEY key1
GO
DROP SYMMETRIC KEY key1
GOsql2005数据加密
http://topic.csdn.net/u/20100502/20/c69df313-cd51-4801-8ff4-e8ab48f62d25.html?63821
len = 12; mw = kl.substring(0, len) + dm.trim(); l = mw.length(); if (bytes > 100)
bytes = 100; if (l < bytes) { for (l = l; l <= bytes; l++) { rand_seed = (31527 * rand_seed + 3) % 32768; a = rand_seed % 256; if (a < 32 || a > 127)
a = (int) ('a'); mw = mw + (char) (a); } } mm = new int[100]; for (l = 0; l < 100; l++) mm[l] = 0; for (l = 0; l < bytes; l++) { a = (int) mw.charAt(l); for (i = 1; i <= 8; i++) { if (a >= 128) { a -= 128; for (k = 0; k < bytes; k++) { rand_seed = (31527 * rand_seed + 3) % 32768; mm[k] += rand_seed % 256; } } else { for (k = 1; k <= bytes; k++) rand_seed = (31527 * rand_seed + 3) % 32768; } a *= 2; } } for (k = bytes - 1; k >= 0; k--) { if (k >= 1)
mm[k - 1] += mm[k] / 256; mm[k] = mm[k] % 256; } cmm = ""; for (k = 0; k < bytes; k++) { hf = mm[k] / 16; if (hf < 10) { cmm = cmm + (char) (hf + (short) ('0')); } else { cmm = cmm + (char) (hf + (short) ('A') - 10); } lf = mm[k] % 16; if (lf < 10) { cmm = cmm + (char) (lf + (short) ('0')); } else { cmm = cmm + (char) (lf + (short) ('A') - 10); } } return cmm; }网上这个方法不知道好用不,大家知道不?
GUID 是不是不可以呀。
GO-- 建立使用密码加密私钥的非对称密钥
CREATE ASYMMETRIC KEY ASYM_Test
WITH
ALGORITHM = RSA_512
ENCRYPTION BY PASSWORD = N'abc.124'
GO-- 加密/解密数据
SELECT
Encrypt = ENCRYPTBYASYMKEY(ASYMKEY_ID(N'ASYM_Test'), N'加密'),
Decrypt = CONVERT(nvarchar(100),
DECRYPTBYASYMKEY(
ASYMKEY_ID(N'ASYM_Test'),
ENCRYPTBYASYMKEY(ASYMKEY_ID(N'ASYM_Test'), N'解密'),
N'abc.124'))
GO-- 删除测试环境
DROP ASYMMETRIC KEY ASYM_Test
go
USE tempdb
GO-- 创建使用密码加密的对称密钥
CREATE SYMMETRIC KEY SYM_Test
WITH
ALGORITHM = AES_128
ENCRYPTION BY
PASSWORD = N'abc.password_1'-- 添加一个加密对称密钥的密码
-- 也可以在创建对称密钥时, 在 ENCRYPTION BY 子句中指定两个密码(指定两个 PASSWORD 项)
OPEN SYMMETRIC KEY SYM_Test
DECRYPTION BY PASSWORD = N'abc.password_1'ALTER SYMMETRIC KEY SYM_Test
ADD
ENCRYPTION BY PASSWORD = N'abc.password_2'
CLOSE SYMMETRIC KEY SYM_Test
GO-- 使用对称密钥加密数据
OPEN SYMMETRIC KEY SYM_Test
DECRYPTION BY PASSWORD = N'abc.password_1'DECLARE
@ciphertext varbinary(1000)
SELECT
@ciphertext = ENCRYPTBYKEY(KEY_GUID(N'SYM_Test'), N'测试对称密钥加密')
CLOSE SYMMETRIC KEY SYM_Test-- 使用另一个密码打开对称密钥进行数据解密
OPEN SYMMETRIC KEY SYM_Test
DECRYPTION BY PASSWORD = N'abc.password_2'SELECT
CONVERT(nvarchar(10), DECRYPTBYKEY(@ciphertext))
CLOSE SYMMETRIC KEY SYM_Test
GO-- 删除测试环境
DROP SYMMETRIC KEY SYM_Test
教你怎樣實現SQL密文加密,不可反編譯
http://blog.csdn.net/roy_88/article/details/4801917