【发布时间】:2013-07-30 22:53:50
【问题描述】:
我是否可以运行更新查询以将一列纯文本存储密码更改为在 msaccess 中 md5+salt'ed 的列?
我试过了:
UPDATE TableName
SET Pass = CONCAT(MD5(CONCAT('salt', Pass)), ':salt');
但是当然它没有用,如果我把表名放在前面,比如:users.Pass,然后它会要求一个文件,如果我不它它告诉我访问找不到输入表.还有就是没有 CONCAT 函数,我完全看不懂。
我正在尝试将访问数据库转换为 mysql 数据库以将客户导入到 magento 安装中,并且没有很多访问经验。谢谢。
【问题讨论】:
-
MS 语言使用
+而不是concat函数或 SQL 标准||。 -
我建议使用与 MD5 不同的散列函数,因为它很容易受到攻击。即使您要保护的数据微不足道,用户也倾向于为他们使用真实密码。 security.stackexchange.com 是了解一些基础知识的良好起点。
-
@ashareef - 但 magento 使用 md5+salt,我认为我无法在导入期间更改它
-
@FrankPl - 所以用 + 替换 concat?我会试试看。嗯不工作,也许我只是将纯文本传输到 mysql db 并以这种方式运行它
-
@Salty - 是的。但是我认为Access也没有MD5。如果您在 Access SQL 中需要它,您将不得不在 VBA 中以某种方式实现它。