云开YUNapp(中国)Kaiyun·官方网站-登录入口
  • 首页
  • 资讯
  • 娱乐
  • 新闻
  • 旅游
  • 汽车
  • 电影
  • 新闻你的位置:云开YUNapp(中国)Kaiyun·官方网站-登录入口 > 新闻 > 开yun体育网事先把数据库的数据解密-云开YUNapp(中国)Kaiyun·官方网站-登录入口
    开yun体育网事先把数据库的数据解密-云开YUNapp(中国)Kaiyun·官方网站-登录入口
    发布日期:2026-01-19 08:34    点击次数:166

    开yun体育网事先把数据库的数据解密-云开YUNapp(中国)Kaiyun·官方网站-登录入口

    配景开yun体育网

    蔚来被绑架 225 万好意思元,大批数据遭露馅!

    凭据收罗好意思丽传的截图披露,黑客似乎掌捏着蔚来里面职工数据 22800 条、车主用户身份证数据 399000 条、用户地址数据 6500000 条、注册用户数据 4850000 条、企业及企业代表有关东谈主数据 10000 条、订单数据 490000 条、退单数据 90000 条,出售的金额以 0.1-0.25 比特币不等。

    蔚来公司和蔚来创举东谈主李斌也齐出来谈歉,并快乐对因本次事件给用户酿成的亏本承担攀扯。

    数据安全

    目下企业齐也曾数字化办公了,在提高成果的同期,数据安全亦然重中之重,好多公司为了追求成果,却忽略安全这方面的使命。从上头的论说看,蔚来此次露馅的数据包含:用户身份证、地址,这些数据守秘级别齐是最高的,在数据库存储也应该要加密存储。

    而加密存储就波及以下几个问题:

    1、加密存储的花式;

    2、加密存储后,数据怎样展示;

    3、加密存储怎样微辞搜索。

    今天就给人人共享下,MySql数据加密的惩处决策、以及怎样惩处以上的问题。

    Mysql加密决策

    Mysql自己自带的加密设施,分为2种:

    1、不行逆加密算法:

    PASSWORD,ENCRYPT,MD5,SHA。

    2、可逆的加密算法:

    AES_ENCRYPT、AES_DECRYPT 和 ENCODE、DECODE。

    以上两组分辨为可逆的加解密函数,齐是复返一个二进制字符串,要以BLOB类型存储。不外ENCODE与DECODE,在MySql 5.7后也曾取消,况兼安全性比拟低,提出不要遴荐。

    在面目开采中,比如密码等极少的数据,不波及披露和搜索的业务需求,不错遴荐不行逆加密,但大部分数据,咱们如故需要遴荐可逆的加密花式。

    Mysql 加密存储

    底下咱们以AES_ENCRYPT、AES_DECRYPT 为例子,来先容下怎样惩处,数据加密存储与查询。

    1、创建表

    最初先创建一张表,唯有一个字段data,用来存储解密后的数据,sql语句如下:

    CREATE TABLE `tab_aes` (`data` VARCHAR(250) NULL DEFAULT NULL COLLATE 'utf8_general_ci')COMMENT='数据加密存储表'COLLATE='utf8_general_ci'ENGINE=InnoDB;

    2、插入数据

    通过Sql语句插入加密的数据,1ql语句如下:

    INSERT INTO tab_aes VALUES( TO_BASE64( AES_ENCRYPT('要加密的本色','秘钥') ) );

    TO_BASE64函数把加密的二进制诊治为Base64,便捷咱们稽察。

    插入的甘休如下:

    3、查询复返解密数据

    SELECT CAST( AES_DECRYPT( FROM_BASE64(tab_aes.data), '秘钥') AS CHAR CHARACTER SET utf8 ) FROM tab_aes

    解密后,要用CAST把字符串编码转为UTF8,不然复返是乱码。

    微辞搜索

    数据加密存储与解密数据,这些齐莫得太大问题,加密存储产生最大的问题,等于微辞搜索,对于微辞搜索有以下决策:

    1、数据预加载至内存数据库

    此决策是步地开动的技术,事先把数据库的数据解密,并加载至内存中,比如遴荐MongoDB,此决策存在的优污点如下:

    优点:

    数据安全,查询性能速率快

    污点:

    业绩器占用内存大;

    数据表无法关系查询;

    内存数据与数据库要及时保存一致,需要畸形使命量。

    2、步地及时加载数据,并解密处理

    此决策是,用户触发恳求的技术,步地及时加载并解密,保存至内存,诚然此决策惩处了与数据库同步的问题,但也存在其他问题,此决策优污点如下:

    优点:

    数据安全,查询性能速率快、数据处理天真。

    污点:

    业绩器内存不行控,俄顷内存容易飙升,可能导致业绩器不剖析;

    数据表无法关系查询。

    3、在Sql语句处理微辞搜索

    若是数据量比拟少,以上两种决策可能不会产生太大的影响,但对于大多数面目以上两种决策如故不靠谱的。

    在Sql语句处理微辞搜索,也有以下几种决策:

    3.1、及时解密搜索

    径直在数据库端,把加密的数据解密。

    SELECT CAST( AES_DECRYPT( FROM_BASE64(tab_aes.data), '秘钥') AS CHAR CHARACTER SET UTF8 ) FROM tab_aesWHERECAST( AES_DECRYPT( FROM_BASE64(tab_aes.data), '秘钥') AS CHAR CHARACTER SET UTF8 ) LIKE '要加密%'

    优点

    搜索天真

    污点:

    无法行使索引,搜索性能慢;

    数据需要先解密,导致性能慢。

    3.2、字段冗孑遗储

    咱们齐知谈MySql微辞搜索,唯有当匹配伊始、粗略匹配扫尾的技术,索引才会顺利。是以咱们不错膨胀一个字段,用来存储伊始和扫尾加密后的数据。

    创建表sql语句如下,新增一个字段data_ext,并设置索引:

    CREATE TABLE `tab_aes` (`data` VARCHAR(250) NULL DEFAULT NULL COLLATE 'utf8_general_ci',`data_ext` VARCHAR(250) NULL DEFAULT NULL COLLATE 'utf8_general_ci',INDEX `data_ext` (`data_ext`) USING BTREE)COMMENT='数据加密存储表'COLLATE='utf8_general_ci'ENGINE=InnoDB;

    比如,要加密的本色为:123456789,字段data_ext取字段data,伊始和扫尾3个字符存储,储存步地为:AES(123) , AES(789),插入数据的sql语句如下:

    INSERT INTO tab_aes VALUES( TO_BASE64( AES_ENCRYPT('要加密的本色','秘钥')), CONCAT(TO_BASE64( AES_ENCRYPT('要加密','秘钥')), ',', TO_BASE64( AES_ENCRYPT('本色','秘钥'))));

    存储甘休如下:

    相应的微辞搜索sql语句如下:

    SELECT CAST( AES_DECRYPT( FROM_BASE64(tab_aes.data), '秘钥') AS CHAR CHARACTER SET UTF8 ) FROM tab_aesWHEREtab_aes.data_ext LIKE CONCAT(TO_BASE64(AES_ENCRYPT(('要加密'),'秘钥')),'%')AND tab_aes.data_ext LIKE CONCAT('%',TO_BASE64(AES_ENCRYPT(('本色'),'秘钥')))AND tab_aes.data_ext LIKE CONCAT(TO_BASE64(AES_ENCRYPT(('要加密'),'秘钥')),'%', TO_BASE64(AES_ENCRYPT('本色','秘钥')));

    通过Explain分析甘休,该查询sql语句索引是顺利的。

    此决策优点:

    1、搜索性能高;

    2、因循表关系搜索。

    此决策也有以下污点:

    1、匹配字符数是固定,若是业务有变,需要再行更新数据库;

    2、数据存储需要畸形使命量;

    3、冗尾数据,需要畸形的存储空间。

    写在临了

    任何一种决策齐有其优点,也有它的局限性,但有一丝的是,数据安全是最遑急的,任何企业切不行只为了业务发展,而忽略安全的遑急性。

    - End -开yun体育网



    Powered by 云开YUNapp(中国)Kaiyun·官方网站-登录入口 @2013-2022 RSS地图 HTML地图