首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果我在MySQL中进行加密/解密(而不是在应用程序中),是否真的会记录明文?

如果我在MySQL中进行加密/解密(而不是在应用程序中),是否真的会记录明文?
EN

Stack Overflow用户
提问于 2011-11-04 18:45:14
回答 4查看 1.6K关注 0票数 1

我正在使用InnoDB MySQL引擎。

我在存储过程中进行加密,然后写入表。

似乎是在记录对DB的低级别更改。该数据已经加密(如果需要的话)。

据我所知,有两种不同类型的日志可以记录对DB的更改:

重做日志(

  1. ib_logfile group),在崩溃时修复一半完成的事务。

  1. 二进制日志,用于从备份复制和还原。

(资料来源:http://dev.mysql.com/doc/refman/5.6/en/glossary.html#glos_ib_logfile)

谢谢。

编辑:

找到关于二进制日志的良好链接:http://dev.mysql.com/doc/refman/5.6/en/binary-log.html

但我还是想知道重做日志的事。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-04 18:56:52

也许是吧。如果您的MySQL服务器被设置为将所有语句记录到常规查询日志,或者如果启用了二进制日志记录并且没有设置为使用基于行的格式,那么将在那里记录明文和键。

此外,在数据库中执行加密/解密可能会将您的数据暴露给可以修改存储过程的攻击者。这通常不是个好主意,我会避免的。

票数 1
EN

Stack Overflow用户

发布于 2012-03-09 14:16:44

最好对应用程序中的数据进行加密。从那里开始的任何登录都会加密数据。我们使用PHP加密使用mcrypt

代码语言:javascript
运行
复制
$key = mhash(MHASH_MD5, $key);
$cipher = MCRYPT_RIJNDAEL_256;
$vector = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg, MCRYPT_MODE_ECB), MCRYPT_RAND);
$CC_number = mcrypt_encrypt($cipher, $key, "4111111111111111", MCRYPT_MODE_CBC, $vector);
$CC_name = mcrypt_encrypt($cipher, $key, "Prion Interactive", MCRYPT_MODE_CBC, $vector);

对于PCI法规,您确实需要有一个单独存储加密密钥的separate key server。PCI审计师对于在CC data绑定日志中传递MySQL非常犹豫,即使您使用的是基于行的复制。对一个人来说要改变这种状况太容易了。

票数 1
EN

Stack Overflow用户

发布于 2011-11-04 18:55:30

你认为明文将被记录在什么知识的基础上?存储过程到底是做什么的?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8014290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档