MySQL ENCODE中使用什么类型的加密?

问题描述 投票:2回答:1

MySQL的

ENCODE('pass','salt')

使用什么样的加密?与DES非常相似

知道密码时,蛮力去盐吗?

mysql decode encode crypt
1个回答
2
投票

ENCODE()和DECODE()使用的算法源可在此处获得:

https://github.com/mysql/mysql-server/blob/5.7/sql/sql_crypt.cc

该文件中的评论说这个算法“应该适用于短字符串”,但这并不能让我相信它是一种专业级的加密算法。

请注意,MySQL 5.7中已弃用这两个函数。你应该使用AES_ENCRYPT()AES_DECRYPT()代替。

但是,还建议避免在SQL中使用加密函数,因为如果这样做,明文字符串将被添加到查询日志或二进制日志中:

INSERT INTO SuperSecureTable 
SET secret = AES_ENCRYPT('no one should see this', 'secret');

来自@ikegami的评论:

我认为你将加密与哈希相混淆。

更正:我明白你的观点。根据加密要求的安全性,AES_ENCRYPT()也不合适。最好在一个应用程序中使用最先进的加密技术,并将生成的加密数据插入数据库。

这也将解决我在上面提到的问题,即明文记录在日志中。

© www.soinside.com 2019 - 2024. All rights reserved.