【问题标题】:Can MySQL (Windows) do SHA-256 and HMAC hashing?MySQL (Windows) 可以进行 SHA-256 和 HMAC 散列吗?
【发布时间】:2011-03-20 01:55:52
【问题描述】:

长期阅读,第一次海报。我从一个相当神秘的开始!

我想做的是用 SHA-256 算法加密一个字符串,然后用一个密钥对其进行哈希处理。

我发现有人在创建“普通”SHA-2 加密算法作为存储函数方面做了一些出色的工作:http://blog.darkrainfall.org/sha-256-in-mysql/,这可能对其他人有帮助,但我需要能够做到用钥匙。

有人知道这是否可能吗?恐怕我是加密的新手。

我在 Windows 2003 服务器上使用 mySQL 5.1。

干杯。

【问题讨论】:

    标签: mysql encryption hash


    【解决方案1】:

    有点不清楚您的最终目标是什么,但您引用的 SHA 实现应该能够执行您想要的散列。用于消息身份验证的“使用密钥散列某些东西”的一个含义可能是您获取一个密钥并将其预先添加到数据中,然后对整个结果进行散列。有用的维基百科有一些关于HMAC 的信息。

    请注意,散列不是加密。这个问题似乎暗示散列某些东西与加密它是一样的。但是,哈希会获取一些数据并通过数据混合器运行它并生成(通常)固定长度的数据块。使用密码学上强大的哈希函数,(从实际的角度来看)应该不可能找到导致给定哈希值的输入。另一方面,加密采用密钥和数据块并通过数据混合器运行 i 并生成数据块,然后可以与原始密钥一起“未混合”以生成原始数据。

    【讨论】:

    • 只是一个注释。使用键散列 not 一定意味着在可散列之前添加键。通常,加盐散列涉及在可散列之前添加盐。 HMAC 是一个函数,将哈希算法和密钥作为参数,并返回一个新的哈希算法。这种新的哈希算法将通过一种更复杂、更安全的机制来转换带有密钥的哈希值。
    • @Justice - 这是真的。我正在简化一种可能的情况。我会尝试更新它以使其更准确。
    • 哇,真快。抱歉,我想知道我是否说得很清楚,你说得对!我希望能够在 SQL 语句中执行类似的操作: SELECT hash_hmac('sha256', '$variable', '$key') as hashed_response 我知道我可以使用我提到的存储函数执行 sha-256,但我想知道如何将其扩展到 HMAC。尽管从您上面所说的内容来看,该脚本虽然共享正确的加密,但对于我正在尝试做的事情来说可能不是首发。我只在这方面工作了 24 小时,所以请对我温柔一点!
    • 编写您自己的hash_hmac_sha256,它通过SHA-256 实现HMAC。
    • 好的...这就是我要问的。我想我有点超出我的深度。你有什么地方可以告诉我我可以从哪里开始研究如何写这个吗?我开始掌握 SHA-256 存储函数,但我应该从那里开始,还是从头开始?我可能咬得比我能咀嚼的还多……
    猜你喜欢
    • 2011-06-28
    • 1970-01-01
    • 2016-04-29
    • 2012-07-07
    • 2018-07-14
    • 2013-01-09
    • 2016-04-15
    • 2019-02-24
    • 1970-01-01
    相关资源
    最近更新 更多