利用MySQL加密函数保护Web网站的敏感数据

更新时间:2022-02-11
浏览次数:23

假如你正在运行使用MySQL的Web应用程序,那么你把密码或者其他敏感信息保存在应用程序里的机会就很大。保护这些数据免受黑客或者窥探者的获取是一个特别需要注意的问题,因为你既不能让未经授权的人员使用或者破坏应用程序,同时还要保证您的竞争优势。幸运的是,MySQL带有很多设计用来提供这种类型安全的加密函数。本文中主要介绍了其中的一些函数,并且详细的说明了如何使用它们,以及它们所能够提供的不同级别的安全。


双向加密


首先我们从最简单的加密开始:双向加密。在这里,一段数据通过一个密钥被加密,只能够由知道这个密钥的人来解密。MySQL有两个函数来支持这种类型的加密,分别叫做ENCODE()和DECODE()。下面是一个简单的实例:

其中,Joe的密码是guessme,它通过密钥abracadabra被加密。要注意的是,加密完的结果是一个二进制字符串

abracadabra这个密钥对于恢复到原始的字符串至关重要。这个密钥必须被传递给DECODE()函数,以获得原始的、未加密的密码。下面就是它的使用方法

应该很容易就看到它在Web应用程序里是如何运行的——在验证用户登录的时候,DECODE()会用网站专用的密钥解开保存在数据库里的密码,并和用户输入的内容进行对比。假设您把PHP用作自己的脚本语言

提示:虽然ENCODE()和DECODE()这两个函数能够满足大多数的要求,但是有的时候您希望使用强度更高的加密手段。在这种情况下,您可以使用AES_ENCRYPT()和AES_DECRYPT()函数,它们的工作方式是相同的,但是加密强度更高。


单向加密


单向加密与双向加密不同,一旦数据被加密就没有办法颠倒这一过程。因此密码的验证包括对用户输入内容的重新加密,并将它与保存的密文进行比对,看是否匹配。一种简单的单向加密方式是MD5校验码。MySQL的MD5()函数会为您的数据创建一个“指纹”并将它保存起来,供验证测试使用。

现在您可以测试用户输入的内容是否与已经保存的密码匹配,方法是取得用户输入密码的MD5校验码,并将它与已经保存的密码进行比对

或者,您考虑一下使用ENCRYPT()函数,它使用系统底层的crypt()系统调用来完成加密。这个函数有两个参数:一个是要被加密的字符串,另一个是双(或者多)字符的“salt”。它然后会用salt加密字符串;这个salt然后可以被用来再次加密用户输入的内容,并将它与先前加密的字符串进行比对。下面一个例子说明了如何使用它

注释:ENCRYPT()只能用在*NIX系统上,因为它需要用到底层的crypt()库。

值得注意的是,上面的例子说明了如何利用MySQL对您的数据进行单向和双向的加密,并且告诉了您一些关于如何保护数据库和其他敏感数据库信息安全的理念。



最新发布
基于SPRINGBOOT开发的JAVA车辆派车管理系统
thinkphp6实现微信V3服务商支付接口
初探温湿度监控系统
再谈MYSQL8.0保存微信表情昵称失败
网站定位方法
重组汽车管理系统
汽车派遣小程序增加用车单撤销
中文加密解密的BASE64的类
Window.Open详解
企业网站防止网页病毒和木马技巧
热门阅读
单位车辆管理系统解决方案

2022年汽车维修管理系统免费V1.0试用

免费汽车维修管理系统,配件出入库管理,维修单据录入和打印,客户管理,财务管理

车辆派车小程序基础版发布

打开手机微信小程序搜索“派车堂”或扫太阳码码进入小程序

保存到数据库前替换空格/回车

在没使用框架的小项目中,很多函数需要自己处理。数据入库部分是很重要的一环,防止SQL注入要过滤很多字符。 If Not IsNull(fString) Then fString = trim(fString) 'fString = replace(fString, ";", ";") '分号过滤 fString = replace(fString, "--", "——") '--过滤 fString = replace(fString, "%20", "") '特殊字符过滤 fString = replace(fString, "==", "") '==过滤 'fString = replace(fString, ">", ">") 'fString = replace(fString, "<", "<") fString = Replace(fString, CHR(32), " ") ' fString = Replace(fString, CHR(9), " ") ' fString = Replace(fString, CHR(34), """) fString = Replace(fString, CHR(39), "'") '单引号过滤 fString = Replace(fString, CHR(13), "") fString = Replace(fString, CHR(10) & CHR(10), "</P><P>") fString = Replace(fString, CHR(10), "<BR>") changechr = fString End If End Function

工厂生产订单管理系统

电脑,微信小程序都能访问,系统支持自动核算成本,业绩统计,订单拆分下单

车辆维修(汽修)系统使用手册

汽车维修子系统使用手册说明文档

sqlserver重置自增ID列从1开始

在测试程序过程中删除数据,表需要重置自增ID列从1开始

供应链(报单)订单管理系统V1上线

支持电脑下单,手机小程序下单,订单持久化保存在服务器不丢失,报单分单给不同供货商,数据图形化统计,数据导出,微信扫码分享订单详情

利用MySQL加密函数保护Web网站的敏感数据

假如你正在运行使用MySQL的Web应用程序,那么你把密码或者其他敏感信息保存在应用程序里的机会就很大。

汽车派遣小程序增加用车单撤销

此时由于申请单处于待审批状态,车辆锁住中,其他人员不能申请该辆车,造成时间上的浪费。

微信扫以下二维码添加好友咨询