Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 跨整行(包括bools)加密数据库字段_Mysql_Postgresql_Encryption - Fatal编程技术网

Mysql 跨整行(包括bools)加密数据库字段

Mysql 跨整行(包括bools)加密数据库字段,mysql,postgresql,encryption,Mysql,Postgresql,Encryption,我有一个网站的数据库表,其中所有的字段都是敏感数据。每一行将属于不同的用户(服务的用户,而不是数据库用户)。通常,我会为每一行生成一个加密密钥,在客户端应用程序中加密数据,然后将数据存储在二进制字段中来实现这一点。每一行还将存储加密密钥,该密钥将由应用程序自己的加密密钥加密 未加密的表模式包括一些布尔字段和整数。我想知道加密这么小的值是否会导致可能的破解机会?如果有人对如何做到这一点有更好的想法,我也很感兴趣 目前计划使用MySQL,但Postgres是可能的。该应用程序是一个网站,与浏览器之

我有一个网站的数据库表,其中所有的字段都是敏感数据。每一行将属于不同的用户(服务的用户,而不是数据库用户)。通常,我会为每一行生成一个加密密钥,在客户端应用程序中加密数据,然后将数据存储在二进制字段中来实现这一点。每一行还将存储加密密钥,该密钥将由应用程序自己的加密密钥加密

未加密的表模式包括一些布尔字段和整数。我想知道加密这么小的值是否会导致可能的破解机会?如果有人对如何做到这一点有更好的想法,我也很感兴趣


目前计划使用MySQL,但Postgres是可能的。该应用程序是一个网站,与浏览器之间的连接加密,与客户端之间的连接加密



只是一个关于选择答案的简短说明,因为有几个答案可能是正确的,所以我选择了@Jack's,因为它不仅会起作用,而且我发现这是一个有趣的建议,方向是我没有考虑过的。我真的很感激所有的输入,谢谢。

我认为不可能对布尔之类的东西进行加密,因为布尔值只有两个可能的值:真、假,人们可以在有限的时间内猜出值。对整个记录进行加密可能更好。

只要使用足够大的


当然,存储需求会急剧增加,但这只是您所要求的安全性的入门价格,而不是“问题”

MySQL的第三方加密解决方案可能会解决这个问题。退房,或者。他们都声称拥有MySQL的透明数据加密功能。

我想插话说布尔值绝对可以加密。从统计上看,(在加密状态下)一半时间是真的,一半时间是假的。虽然有些时间它会与当前值匹配,有些时间它不会匹配,但我们无法知道


这假设密码的初始化是良好的,并且每行的初始化都不同,但这也是任何文本字段的一个要求,以防止它们被打开以进行简单的密码分析。

选择一个值——无论是真是假。掷硬币。异或抛硬币和你选择的值。无论你选择的值的分布如何,你的结果在统计学上应该是50/50。我想我会为此写很多测试!如果我不满意,那么我会考虑实现整个记录的加密,或者连接到一个或多个字段,或者在一个文件中。安全性比性能更重要,因为视图数量不会太多,因此性能不会成为主要问题。谢谢您告诉我这些。我快速浏览了一下,发现它们的安全性更高(比如表或整个数据库),但它们仍然非常有趣,我将进一步研究它们。谢谢你的提醒。我还没有考虑过用盐(好几颗比一颗好),但这是个好主意。在这种情况下,存储空间很便宜。谢谢。每一行都有它自己的键,每个键都使用不同的伪随机生成的初始化向量(IV),所以我想(希望!)已经涵盖了。想想看,如果我使用的是分组密码,那么我想这应该不会是一个问题,因为从本质上讲,它是把数据分割成小块。谢谢你的意见,这对澄清问题有很大帮助。