首先,先介绍下加密函数,PASSWORD(string)函数可以对字符串string进行加密,代码如下:
SELECT
PASSWORD('you');
如下图所示:
执行第一步的SQL语句,查询结果是一串字符串,并且PASSWORD(string)函数加密是不可逆转,
如下图所示:
另外一个加密函数MD5(string),主要针对普通的数据进行加密,代码如下:
SELECT
MD5('hai');
如下图所示:
最后一个加密函数ENCODE(string,pass),可以使用字符串pass来加密字符串string。首先要创建一个数据库表t_pass_info,代码如下:
CREATE
TABLE
t_pass_info(
id
int(10),
pass_info
blob
);
如下图所示:
然后,向这个数据库表插入一条数据,代码如下:
INSERT
INTO
t_pass_info(id,pass_info)
VALUES
(1,ENCODE('dong','bb'));
如下图所示:
6
查看插入数据库表t_pass_info记录,代码如下:
SELECT
FROM
t_pass_info;
如下图所示:
7
MySQL自带还有一个解密函数DECODE(str,pass_str),可以使用字符串pass_str来为str解密,代码如下:
SELECT
DECODE(ENCODE('dong','aa'),'aa');
如下图所示:
三角符号能直接存储数据库中吗,能,特殊字符数据库的存取问题
第一种方法就是replace 例如在入库的时候可以把(" ")换成( :) 把(/r/n)换成(
)
这样的话在自动帮定的时候就可以在数据控件中显示换行和空格了,但是要注意的是如果是自己写代码进行,要把数据显示在textbox
lable等上面,就要注意了,要把它们替换过来即在用replace把数据库中的( :) 换成(" ")
把(
)换成(/r/n)
第二种方法就是ServerHtmlEncode("")处理了 入库用HtmlEncode(string) 例如ServerHTMLEncode("The paragraph tag:
")注意这个把空格都去掉了,在存入数据库的时候。在入库的时候用一下这个方法,在数据库中存储的就是The
paragraph tag: <P> 和上面相同如果自动帮定的话它自动解码,显示为The paragraph
tag:
。但是自己写代码也要转换了,这个可以用ServerHtmlDecode(string)来实现逆转。
感觉第二种方法好一点,但扩展性不好,第一种方法,自己可以把很多需要的写成一个方法,然后在调用!我留言板就只把空格和换行处理了,其他特殊字符都没处理,别人要是输入特殊字符的话,肯定要出问题的。看来还得改!总算找到个比较齐全的HTML常用特殊字符(>
好像没这东西
你在编程语言中实现把
这种情况我都是用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("密码内容"));
}
}
ServerHtmlEncode 顾名思义 html编码 ServerHtmlDecode 顾名思义 html反编码 1)保存数据库之前就进行HTML编码(ServerHtmlEncode),读取显示时直接输出 2)保存数据库之前未进行HTML编码,读取显示前(ServerHtmlEncode)
以上就是关于如何利用MySQL数据库自带加密函数进行加密全部的内容,包括:如何利用MySQL数据库自带加密函数进行加密、三角符号能直接存储数据库中吗、数据库如何实现字段加密等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)