当前位置: 首页 > news >正文

用自己的电脑做视频网站做一个网站需要多少费用

用自己的电脑做视频网站,做一个网站需要多少费用,各类电子商务网站建设,网络架构图加密数据的模糊查询实现方案 我们知道加密后的数据对模糊查询不是很友好#xff0c;本篇就针对加密数据模糊查询这个问题来展开讲一讲实现的思路#xff0c;希望对大家有所启发。为了数据安全我们在开发过程中经常会对重要的数据进行加密存储#xff0c;常见的有#xff1…加密数据的模糊查询实现方案 我们知道加密后的数据对模糊查询不是很友好本篇就针对加密数据模糊查询这个问题来展开讲一讲实现的思路希望对大家有所启发。为了数据安全我们在开发过程中经常会对重要的数据进行加密存储常见的有密码、手机号、电话号码、详细地址、银行卡号、信用卡验证码等信息这些信息对加解密的要求也不一样比如说密码我们需要加密存储一般使用的都是不可逆的慢hash算法慢hash算法可以避免暴力破解典型的用时间换安全性。因此在作完加密之后的字符串之后加密算法会抹去原来字符的一些特性让结果字符串没有可识别的特点这样目的是确保安全性即使被截获还是无法轻易的破解。但是这样也就造成了查询的复杂性。一般我们在加密数据查询都是用如下方式利用等值查询来获取 select * from t_test_aes where message_id 0xF3F4127D4D1AEC1DC5A620CE5E8C7F4F;以上手段都无法做到模糊查询例如银行用户的真实用户名是一个敏感数据如何模糊查询用户名字是一个难点 加密数据模糊查询方案一 数据库中实现加密解密有如下SQL drop table if exists t_test_aes; CREATE TABLE t_test_aes (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,message_id BLOB(20) NOT NULL COMMENT 消息Id,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT3 DEFAULT CHARSETutf8mb4 COMMENTaes测试表; ## 添加数据 insert into t_test_aes( message_id) values ( AES_ENCRYPT(test_message2, test_key)); insert into t_test_aes( message_id) values ( AES_ENCRYPT(test_message3, test_key)); insert into t_test_aes( message_id) values ( AES_ENCRYPT(test_message4, test_key)); 有如上数据库表我们定义message_id用来做模糊查询在添加数据时候不在代码中加密而是在mysql数据库中加密利用数据库自己的加密算法完成脱敏如下insert ## 添加数据 insert into t_test_aes( message_id) values ( AES_ENCRYPT(test_message2, test_key)); insert into t_test_aes( message_id) values ( AES_ENCRYPT(test_message3, test_key)); insert into t_test_aes( message_id) values ( AES_ENCRYPT(test_message4, test_key));同样在查询的时候也可以用这个方法进行模糊查询 ## 查询数据 select * from t_test_aes where AES_DECRYPT(message_id, test_key) like %2%; select * from t_test_aes where message_id 0xF3F4127D4D1AEC1DC5A620CE5E8C7F4F;优缺点 优点是实现成本低开发使用成本低只需要将以往的模糊查找稍微修改一下就可以实现缺点也很明显这样做无法利用数据库的索引来优化查询甚至有一些数据库可能无法保证与程序实现一致的加解密算法但是对于常规的加解密算法都可以保证与应用程序一致 加密数据模糊查询方案二 对密文数据进行分词组合将分词组合的结果集分别进行加密然后存储到映射表查询时通过key like ‘%partial%’这是一个比较划算的实现方法我们先来分析一下它的实现思路先对字符进行固定长度的分组将一个字段拆分为多个比如说根据4位英文字符半角2个中文字符全角为一个检索条件举个例子 test_message_one 使用4个字符为一组的加密方式, 第一组test第二组est_第三组st_m第四组t_mes … 依次类推。如果需要检索所有包含检索条件4个字符的数据比如test加密字符后通过 key like “%partial%” 查库。 重要要实现以上加密算法的模糊查询必须有固定的加密算法满足以下需求 假如原序列 A 加密后的 值是X 那么存在 A的连续子序列 B 加密后的值是Y 必须保证 Y 也是X 的连续子序列 例如如下加密算法的结果久满足需求 test_message_one 加密后值为 whvwbphvvdjhbrqh test 加密之后的值为 whvw依据以上分析我们有如下Sql案例做具体说明 drop table if exists t_test_aes_target; CREATE TABLE t_test_aes_target (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,message_id varchar(256) NOT NULL COMMENT 消息Id,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT3 DEFAULT CHARSETutf8mb4 COMMENT加密测试表;drop table if exists t_test_aes_sub; CREATE TABLE t_test_aes_sub (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,target_id bigint(20) NOT NULL COMMENT id,origin_msg varchar(256) NOT NULL COMMENT 消息Id,message_id_buf varchar(256) NOT NULL COMMENT 消息Id,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT3 DEFAULT CHARSETutf8mb4 COMMENT拆分加密测试表; 添加如下加密数据到目标数据表中 insert into t_test_aes_target(id, message_id) values (1, whvwbphvvdjhbrqh);添加如下拆分后的关连数据到如下表中 insert into t_test_aes_sub(target_id, origin_msg, message_id_buf) values (1, test , whvw); insert into t_test_aes_sub(target_id, origin_msg, message_id_buf) values (1, est_ , hvwb); insert into t_test_aes_sub(target_id, origin_msg, message_id_buf) values (1, st_m , vwbp); insert into t_test_aes_sub(target_id, origin_msg, message_id_buf) values (1, t_me , wbph); insert into t_test_aes_sub(target_id, origin_msg, message_id_buf) values (1, _mes , bphv); insert into t_test_aes_sub(target_id, origin_msg, message_id_buf) values (1, mess , phvv); insert into t_test_aes_sub(target_id, origin_msg, message_id_buf) values (1, essa , hvvd); insert into t_test_aes_sub(target_id, origin_msg, message_id_buf) values (1, ssag , vvdj); insert into t_test_aes_sub(target_id, origin_msg, message_id_buf) values (1, sage , vdjh); insert into t_test_aes_sub(target_id, origin_msg, message_id_buf) values (1, age_ , djhb); insert into t_test_aes_sub(target_id, origin_msg, message_id_buf) values (1, ge_o , jhbr); insert into t_test_aes_sub(target_id, origin_msg, message_id_buf) values (1, e_on , hbrq); insert into t_test_aes_sub(target_id, origin_msg, message_id_buf) values (1, _one , brqh);加密算法说明我们可以采用一种简单的方法将原字符串转换为一个固定大小的数组然后对数组中的每个元素进行简单的变换例如ASCII值加一个固定偏移量。这样当子字符串被加密时由于它是原字符串的一部分其加密结果自然也是原字符串加密结果的子串 // 加密方法public static String encrypt(String input) {return shiftString(input, SHIFT);}// 通过ASCII值偏移量来加密字符串private static String shiftString(String input, int shift) {char[] chars input.toCharArray();for (int i 0; i chars.length; i) {chars[i] (char) (chars[i] shift);}return new String(chars);}public static ListString splitStringByCharacterType(String input, Integer num) {if(StringUtils.isBlank(input)){return Arrays.asList();}if(input.length() 4){return Arrays.asList(input);}ListString result new ArrayList();for (int i 0; i input.length() - 4; i) {result.add(input.subSequence(i, i4).toString());}return result;}通过以上加密方式以及数据维护方式来维护的数据可以用如下查询来完成第一直接通过子字符串 的加密密文模糊查询 select * from t_test_aes_target where message_id like %whvw%;第二通过关联表来查询关联表通过test加密密文查询出关联id通过id主键查询完成 select * from t_test_aes_target where id in (select id from t_test_aes_sub where message_id_buf like %whvw%);优缺点 优点就是实现起来不算复杂使用起来也较为简单算是一个折中的做法因为会有扩展字段存储成本会有升高但是可利用数据库索引优化查询速度推荐使用这个方法。缺点这个方法虽然可以实现加密数据的模糊查询但是对模糊查询的字符长度是有要求的以我上面举的例子模糊查询字符原文长度必须大于等于4个英文/数字或者2个汉字再短的长度不建议支持因为分词组合会增多从而导致存储的成本增加反而安全性降低。而且这种加密算法的安全性不高
http://www.hkea.cn/news/14482515/

相关文章:

  • 做网站购买什么软件net网站开发参考文献
  • 水电维修在哪个网站上做推广好些电脑卸载不了wordpress
  • 百度网站建设费用中企动力天津科技有限公司
  • 建设网站和网页有啥区别网站报价方案怎么做
  • 长春seo网站建设费用Wordpress 淘宝客 页面
  • 灵犀科技 网站开发个人网站建设代码
  • 同性男做性视频网站广州哪个网站建设公司好
  • 网站建设中html西安查派网站建设
  • 男女主网站上做的popo全国信用企业公示系统
  • 哪里有做网站的素材老版本hao123上网导航
  • 网络公司如何开网站如何用织梦仿制网站
  • 自适应网站做1920的表白网站建设源码
  • 如何做专题网站免费医院网站源码
  • wordpress更改链接后网站打不开彩页设计模板免费
  • 网站seo啥意思怎么做互联网营销方式
  • 免费创建网站 优帮云移动网站建设初学视频教程
  • 网站建设设计公司类网站织梦模板(带手机端)东营哪里有做网络推广的
  • 怎么做网站埋点家居网站建设效果
  • 贵州网站中企动力建设上海专业做网站的
  • 网站特效怎么做120平米装修10万够吗
  • 长春企业网站排名优化网站建设方案 文库
  • 有一个网站叫浪什么怎样生成链接
  • 网站太原wangz建设单页网站快速收录
  • 网站设计的公司价格深圳优化新材料
  • 闽清住房和城乡建设局网站WordPress pdo mysql
  • 杭州网站设计公司排名网站建设大作业提交要求
  • 律师网站建设哪家专业网站设计需要的元素
  • 浙江省火电建设公司网站家具设计用什么软件最好
  • 国内做新闻比较好的网站有哪些教育网站制作运营
  • django做的网站模板北京发布会直播