有谁知道我们如何/在哪里可以将 md5 加密应用于列。
我正在创建一个用户密码表,并且在密码列上我想应用 md5 加密。
提前致谢。
取自mysql工作台手册:
可以在字段中输入函数或其他表达式。使用前缀 \func 防止 MySQL Workbench 转义引号。例如,对于表达式 md5('fred'),MySQL Workbench 通常会生成代码 md5(\'fred\')。为防止出现这种情况,请将表达式输入为 \func md5('fred') 以确保引用不会被转义。
有一个 'md5()' 函数,当给定一个字符串时,它会返回一个 32 位十六进制数字的字符串。只需创建一列 char(32) 来保存它就可以了。
请参阅文档。
就在 MySql 工作台中使用它而言,我认为不可能将列显式标记为包含 md5 哈希,因为实际上您可以简单地将 md5 哈希放在 char 列中,如上所述。我不相信您可以让列以这种方式对插入的字符串隐式执行 md5 函数调用。(我可能是错的)。
一年多了……但如果其他人像我一样跌倒在这里:-)
它是这样的:
注意 可以在字段中输入函数或其他表达式。使用前缀 \func 防止 MySQL Workbench 转义引号。例如,对于表达式 md5('fred'),MySQL Workbench 通常会生成代码 md5(\'fred\')。为防止出现这种情况,请将表达式输入为 \func md5('fred') 以确保引用不会被转义。
整个文档在这里。
这/func
件事对我不起作用。它总是忽略它并将其视为字符串。但是,我能够通过一些 SQL 注入来欺骗 Workbench。
写一个( SELECT ... )-语句就行了。所以我把它放在我的领域:
( SELECT GeomFromText( 'POLYGON (( 0 -90, 0 90, 360 90, 360 -90, 0 -90)) ' ) )
它用多边形对象而不是字符串填充了数据库字段。
如前所述,一个 md5 字段是 32 的 varchar。