6

有谁知道我们如何/在哪里可以将 md5 加密应用于列。

我正在创建一个用户密码表,并且在密码列上我想应用 md5 加密。

提前致谢。

4

5 回答 5

11

取自mysql工作台手册:

可以在字段中输入函数或其他表达式。使用前缀 \func 防止 MySQL Workbench 转义引号。例如,对于表达式 md5('fred'),MySQL Workbench 通常会生成代码 md5(\'fred\')。为防止出现这种情况,请将表达式输入为 \func md5('fred') 以确保引用不会被转义。

于 2012-07-16T19:09:27.640 回答
6

有一个 'md5()' 函数,当给定一个字符串时,它会返回一个 32 位十六进制数字的字符串。只需创建一列 char(32) 来保存它就可以了。

请参阅文档

就在 MySql 工作台中使用它而言,我认为不可能将列显式标记为包含 md5 哈希,因为实际上您可以简单地将 md5 哈希放在 char 列中,如上所述。我不相信您可以让列以这种方式对插入的字符串隐式执行 md5 函数调用。(我可能是错的)。

于 2011-05-01T13:46:13.357 回答
0

一年多了……但如果其他人像我一样跌倒在这里:-)

它是这样的:

注意 可以在字段中输入函数或其他表达式。使用前缀 \func 防止 MySQL Workbench 转义引号。例如,对于表达式 md5('fred'),MySQL Workbench 通常会生成代码 md5(\'fred\')。为防止出现这种情况,请将表达式输入为 \func md5('fred') 以确保引用不会被转义。

整个文档在这里

于 2012-06-21T17:46:31.350 回答
0

/func件事对我不起作用。它总是忽略它并将其视为字符串。但是,我能够通过一些 SQL 注入来欺骗 Workbench。

写一个( SELECT ... )-语句就行了。所以我把它放在我的领域:

( SELECT GeomFromText( 'POLYGON (( 0 -90, 0 90, 360 90, 360 -90, 0 -90)) ' ) )

它用多边形对象而不是字符串填充了数据库字段。

于 2013-05-07T15:30:50.127 回答
-1

如前所述,一个 md5 字段是 32 的 varchar。

于 2011-05-25T12:29:32.457 回答