如何利用MySQL数据库自带加密函数进行加密

如何利用MySQL数据库自带加密函数进行加密,第1张

首先,先介绍下加密函数,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 例如在入库的时候可以把(" ")换成(&nbsp:) 把(/r/n)换成(

)

这样的话在自动帮定的时候就可以在数据控件中显示换行和空格了,但是要注意的是如果是自己写代码进行,要把数据显示在textbox

lable等上面,就要注意了,要把它们替换过来即在用replace把数据库中的(&nbsp:) 换成(" ")

把(

)换成(/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数据库自带加密函数进行加密、三角符号能直接存储数据库中吗、数据库如何实现字段加密等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10086582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存