【问题标题】:Encrypt text in PHP and decrypt in MS SQL在 PHP 中加密文本并在 MS SQL 中解密
【发布时间】:2015-11-13 13:39:20
【问题描述】:

正如帖子的标题所说,我正在测试一些代码,我在表单上输入数据,然后使用 MD5(或您认为最好的任何方式)加密所有字段并将其发送到我的 MS SQL 数据库。

$query = "INSERT INTO table_hide(firstname,last) 
VALUES('".md5('Gary')."','".md5('Long')."');

当然,数据库数据是加密的,我想阅读它。

我还知道在 MS SQL 中使用 EncryptByPassPhrase 和 DecryptByPassPhrase 来加密和解密密码。但是,我希望帮助您在网站上使用相同的"key" 进行加密并在 SQL 服务器上进行解密

所以我的问题是,我将如何加密我发送到我的数据库的数据,然后在我的数据库中使用相同的密钥来解密它。

【问题讨论】:

  • 除非你的银行 99% 的人不应该在数据库中存储加密数据
  • md5 不是加密算法。它是一种散列算法,这意味着它只能以一种方式工作,您无法从生成的散列中获取源数据。
  • @Orangepill 注意到了,你能推荐一个加密算法吗?
  • @Dagon 我只是在努力让我的插入语句不以纯文本形式传输。
  • @Niana 如果您想防止 mitm 查看您的插入语句,更好的选择是通过 ssl 连接到您的数据库。见stackoverflow.com/questions/9738712/…

标签: php sql-server encryption cryptography


【解决方案1】:

我正在测试一些代码,我在表单上输入数据,然后使用 md5(或您认为最好的任何方式)加密所有字段并将其发送到我的 MS SQL 数据库。

MD5 不提供加密,它是一种单向加密哈希函数。 hashing and encrypting is very important的区别。

$query = "INSERT INTO table_hide(firstname,last) 
VALUES('".md5('Gary')."','".md5('Long')."');

您可能想阅读this answer on preventing SQL injection。字符串连接不如准备好的语句可靠,因此您可能需要查看您的 other 代码。

所以我的问题是,我将如何加密我发送到我的数据库的数据,然后在我的数据库中使用相同的密钥来解密它。

例如,您可以拥有一个使用常量密钥对其进行解密的存储过程。但是,您首先希望通过加密记录来实现什么?

【讨论】:

    猜你喜欢
    • 2015-08-26
    • 1970-01-01
    • 2019-02-13
    • 2016-02-03
    • 2021-10-05
    • 2011-05-27
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多