当数据被存储时候被加密,它们被使用的时候就会自动加密。在其他的情况下,你可以选择数据是否要被加密。SQL Server数据库可以加密下列这些组件:密码存储过程,视图,触发器,用户自定义函数,默认值,和规则。
在服务器和用户之间传输的数据密码加密SQL Server自动将你分配给登陆和应用角色的密码加密。尽管当你可以从主数据库中直接察看系统表格而不需要密码。你不能给对这种情况作出任何修改,事实上,你根本不能破坏它。
定义加密在有些时候,如果对对象进行加密是防止将一些信息分享给他人。例如,一个存储进程可能包含所有者的商业信息,但是这个信息不能和让其他的人看到,即使他们公开的系统表格并可以看到对象的定义。这就是为什么SQL Server数据库允许你在创建一个对象的时候进行加密。为了加密一个存储进程,使用下面形式的CREAT PROCEDURE 语句:
CREATEPROCEDUREprocedurename[;number]
[@parameterdatatype
[VARYING][=defaultvalue][OUTPUT]]
[,]
[WITHRECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION]
我们关心的仅仅是可选的WITH参数。你可以详细说明ARECOMPILE或者ENCRYPTION,或者你可以同时说明它们。ENCRYPTION关键字保护SQL Server数据库它不被公开在进程中。结果,如果ENCRYPTION在激活的时候系统存储进程sp_helptext就会被忽视,这个存储进程将被存储在用户创建进程的文本中。
如果你不想要加密,你可以使用ALTER PROCEDURE,忽略WITH ENCRYPTION子句来重新创建一个进程。
为了能够使用加密。用户和服务器都应该使用TCP/IP NetworkLibraries用来连接。运行适当的Network Utility和检查Force protocol encryption,看下表,用户和服务器之间的连接将不会被加密。
加密也不能完全自由。当连接确定后源码天空
,要继续其他的构造,并且用户和服务器必须运行代码来解释加密和解释的包裹。这里将需要一些开销并且当在编译码的时候会使进程慢下来。
是否可以解决您的问题?
C#中有数据加密的类using SystemSecurityCryptography,在这个类中你可以调用它的两个方法分别是加密方法
public static string Encrypt(string text)
{}
解密方法
public static string Decrypt(string text)
{}
我们一般使用连接数据库加密的话,都会使用一个配置文件在配置文件中对数据库链接进行读写,通过加密方法把链接写到配置文件,然后读取的时候再使用解密方法。
保护些数据免受黑客或者窥探者获取令关注重要问题您既能让未经授权员使用或者破坏应用程序同要保证您竞争优势幸运MySQL带设计用提供种类型安全加密函数本文概述其些函数并说明何使用及能够提供同级别安全双向加密让我简单加密始:双向加密段数据通密钥加密能够由知道密钥解密mysql两函数支持种类型加密别叫做ENCODE()DECODE()面简单实例:mysql>
INSERT
INTO
users
(username,
password)
VALUES
('joe',
ENCODE('guessme',
'abracadabra'));
Query
OK,
1
row
affected
(014
sec)其Joe密码guessme通密钥abracadabra加密要注意加密完结二进制字符串所示:mysql>
SELECT
FROM
users
WHERE
username='joe';
+----------+----------+
|
username
|
password
|
+----------+----------+
|
joe
|
03i!
|
+----------+----------+
1
row
in
set
(002
sec)abracadabra密钥于恢复原始字符串至关重要密钥必须传递给DECODE()函数获原始、未加密密码面使用:mysql>
SELECT
DECODE(password,
'abracadabra')
FROM
users
WHERE
username='joe';+---------------------------------+
|
DECODE(password,
'abracadabra')
|
+---------------------------------+
|
guessme
|
$query
=
"SELECT
COUNT()
FROM
users
WHERE
username='$inputUser'
AND
DECODE(password,
'abracadabra')
=
'$inputPass'";>提示:虽ENCODE()DECODE()两函数能够满足数要求候您希望使用强度更高加密手段
好像没这东西
你在编程语言中实现把
这种情况我都是用MD5加密
虽然你不想听理论。。。我也懒得写代码。。。
1、把用户的密码用MD5改变成32个字符
2、将这字符串写到数据库里
3、判断密码是否正确的时候,把用户输入的密码在用MD5改变成32个字符、判断这字符串和数据库中字符串是否相同
下面是JAVA的MD5用法
import javasecurityMessageDigest;
public class MD5 {
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
//将字节数组转换为十六进制字符串
private static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < blength; i++) {
resultSbappend(byteToHexString(b[i]));
}
return resultSbtoString();
}
//将字节转换为十六进制字符
private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n = 256 + n;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
public static String MD5Encode(String origin) {
String resultString = null;
try {
resultString = new String(origin);
//MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法
MessageDigest md = MessageDigestgetInstance("MD5");
resultString = byteArrayToHexString(mddigest(resultString
getBytes("GBK")));
} catch (Exception ex) {
}
return resultString;
}
public static void main(String[] args)
{
Systemoutprintln(MD5MD5Encode("admin"));
Systemoutprintln(MD5MD5Encode("密码内容"));
}
}
3des加密很常用
而且算法很多
自己可以随意改
自己设置个加密密钥就行
用户名没必要加密
因为你这不是银行的数据库
感觉差不多就行,如果想万全的话,还是要在数据库的严密性上来做文章。。
以上就是关于数据库怎么加密全部的内容,包括:数据库怎么加密、如何实现数据库连接的密码加密、如何利用MySQL数据库自带加密函数进行加密等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)