MySQL加密和解密

MySQL数据库加密与解密:

 

数据加密、解密在安全领域非常重要。对程序员而言,在数据库中以密文方式存储用户密码对入侵者剽窃用户隐私意义重大。

有多种前端加密算法可用于数据加密、解密,下面我向您推荐一种简单的数据库级别的数据加密、解密解决方案。以MySQL数据库为例,它内建了相应的加密函数(AES_ENCRYPT() )和解密函数(AES_DECRYPT())。

在建表的时候,要注意字段的类型.如下图所示:

 

在表中插入加密数据

 

上面的插入语句有三个字段,“用户名”、“密码”和“加密的密码”。AES_ENCRYPT()函数需要一个“key”来协助加密,同样,解密也需要它(请牢记!)。

下面是表中的数据截图:

 

上面的插入语句有三个字段,“用户名”、“密码”和“加密的密码”。AES_ENCRYPT()函数需要一个“key”来协助加密,同样,解密也需要它(请牢记!)。

下面是表中的数据截图:

 

从表中查询加密数据

 

上面的查询语句使用了AES_DECRYPT()函数。下面是运行结果:

在上面的截图中,我们可以看到“pasword”和“decryptedpassword”字段的值是相同的,也就是说,你解密了用户密码.

 

转载请注明出处: http://blog.csdn.net/johnny901114/article/details/7739008

 

 

 

 

 

 

 

 

 

 

 

 

### 数据加密解密的重要性 在现代数据驱动的应用程序中,确保敏感信息安全至关重要。MySQL 提供了多种内置函数来支持数据的加密解密操作,从而保障用户隐私并满足法律法规的要求[^2]。 ### 使用 `AES_ENCRYPT` `AES_DECRYPT` 进行对称加密 对于需要双向转换的数据(即可以再次读取的内容),推荐采用高级加密标准 (Advanced Encryption Standard, AES),这是一种强健且广泛应用的分组密码算法: #### 加密过程 要将表中的某个字段值进行加密保存,可执行如下 SQL 更新语句: ```sql UPDATE d_debtor_info SET remark1 = TO_BASE64(AES_ENCRYPT(remark1,'自定义密钥')) WHERE id = 1000080703; ``` 这里使用了 `TO_BASE64()` 将二进制形式的结果转化为 Base64 编码字符串以便于存储;而 `'自定义密钥'` 则代表用于加/解密过程中所需的秘密钥匙串[^3]。 #### 解密过程 当需要获取原始未加密的信息时,则可以通过下面这条查询完成相应记录的还原显示: ```sql SELECT CAST(FROM_BASE64(AES_DECRYPT(remark1,'自定义密钥')) AS CHAR) as decrypted_remark1 FROM d_debtor_info WHERE id = 1000080703; ``` 注意,在此命令里加入了类型转换 (`CAST ... AS CHAR`) 来确保最终得到的是字符类型的输出结果。 ### 单向哈希函数简介 如果只是单纯想要验证输入是否匹配已知散列值而不关心恢复原文本的话,那么可以选择不可逆的单向散列方法如 MD5 或 SHA 系列: - **MD5**: 调用方式简单直接——`MD5('待处理字符串')`; - **SHA**: 同样易于上手——`SHA('待处理字符串')` 或者更安全的选择 `SHA2('待处理字符串',长度)`[^4]。 这类机制特别适合用来校验登录口令等场景下的身份认证环节。 ### 安全提示 尽管上述手段能够有效提升安全性水平,但在实际部署前仍需考虑更多因素,比如密钥管理策略、访问控制措施以及定期审查日志文件等等[^5]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chiclaim

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值