Mysql 全表搜索和数据加密
我用vb6和mysql开发了一个客户端软件。这是桌子Mysql 全表搜索和数据加密,mysql,vb6,encryption,Mysql,Vb6,Encryption,我用vb6和mysql开发了一个客户端软件。这是桌子 CREATE TABLE IF NOT EXISTS `main_table` ( `f_id` int(11) NOT NULL DEFAULT '0', `id` mediumint(15) NOT NULL AUTO_INCREMENT, `text_to_encrypt` mediumtext PRIMARY KEY (`id`), KEY `f_id` (`f_id`) ); 客户机希望将数
CREATE TABLE IF NOT EXISTS `main_table` (
`f_id` int(11) NOT NULL DEFAULT '0',
`id` mediumint(15) NOT NULL AUTO_INCREMENT,
`text_to_encrypt` mediumtext
PRIMARY KEY (`id`),
KEY `f_id` (`f_id`)
);
客户机希望将数据加密到文本列。现在加密数据非常容易,但真正的问题是,它可以对用户提供的关键字进行全文搜索,并在解密加密数据后显示数据。该专栏大约有900000篇文章,并将继续增加,我想要针对Windows操作系统的解决方案。怎么办?如果客户机是决定某件事情应该如何表现的人,那么客户机必须知道,如果不解密加密数据,就不能用关键字搜索加密数据
这意味着获取表的全部内容,对其进行解密,然后进行搜索。
< P>您可以考虑对搜索的所有文本内容进行加密和索引。如果文字是Hello world!您需要保存加密的hello和world,然后根据这些内容进行搜索,这些内容在写入初始记录时已映射到加密文本字段。无法搜索加密列如果要求只是对数据进行加密,您考虑过吗?是的,但如果我每次对表进行解密,然后搜索并删除解密后的表,会花费很多时间,因为不可能在短时间内解密大型记录。假设没有滚动加密、salt或类似方法,使其成为非常弱的加密。每一个单词每次都必须加密到同一个字符串,这意味着它只不过是一个腐烂的加密。这是一个公平的观点。像这样的东西怎么用盐?我们有一个和OP类似的问题,我正在考虑我提出的方法。下面是用于加密字符串的alg:$salt=self::getSalt$string=trim$string$size=mcrypt\u get\u iv\u sizeMCRYPT\u RIJNDAEL\u 128,mcrypt\u MODE\u ECB$iv=mcrypt\u create\u iv$size,mcrypt\u RAND$encrypted=mcrypt_encryptMCRYPT_RIJNDAEL_128,$salt,$string,mcrypt_MODE_ECB,$iv;返回bin2hex$加密;谢谢你的反馈。