[发明专利]一种基于数据库的积木式动态加密方法有效
申请号: | 201410439845.0 | 申请日: | 2014-09-01 |
公开(公告)号: | CN104252604B | 公开(公告)日: | 2017-04-26 |
发明(设计)人: | 罗喜召 | 申请(专利权)人: | 苏州锐盾信息科技有限公司 |
主分类号: | G06F21/62 | 分类号: | G06F21/62;G06F17/30 |
代理公司: | 苏州广正知识产权代理有限公司32234 | 代理人: | 刘述生 |
地址: | 215000 江苏省苏州市苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于数据库的积木式动态加密方法,包括以下步骤(1)布鲁姆滤波器的实现;(2)为明文添加随机字符串;(3)加密;(4)解密。通过上述方式,本发明基于数据库的积木式动态加密方法具有能够利用数据库原本就有的查询优化技术进行密文的查找和计算,并且不需要过多的更改原有应用程序连接数据库部分的代码,同时数据库管理员无法获得明文信息等优点,在基于数据库的积木式动态加密方法的普及上有着广泛的市场前景。 | ||
搜索关键词: | 一种 基于 数据库 积木 动态 加密 方法 | ||
【主权项】:
一种基于数据库的积木式动态加密方法,其特征在于,包括以下步骤:(1)布鲁姆滤波器的实现:(a)自定义一个结构体BLOOM,结构体内声明了位数组的大小asize、用于表示布鲁姆滤波器的位数组a、所用的哈希函数个数nfuncs、以及指向所有用到的哈希函数的函数指针funcs,这些哈希函数传入const char*类型的参数并输出unsigned int类型的结果,这里用typedef unsigned int (*hashfunc_t)(const char *)来声明一个指向所需哈希函数的函数指针类型hashfunc_t;(b)编写创建布鲁姆滤波器的函数BLOOM *bloom_create(int size, int nfuncs, ...),根据传入的size来确定位数组大小、传入的nfuncs来确定哈希函数的个数,使用var_start和var_end来处理动态个数的参数列表,得到所有哈希函数指针;(c)编写销毁布鲁姆滤波器的函数int bloom_destroy(BLOOM *bloom),用于在完成布鲁姆滤波器运算后,及时销毁堆中的内存,防止内存泄露;(d)编写添加元素的函数int bloom_add(BLOOM *bloom, const char *s),用于向指定的bloom中添加字符串元素s;(e)编写检查元素是否属于布鲁姆滤波器的函数int bloom_check(BLOOM *bloom, const char *s),使用bloom中指向哈希函数的函数指针,依次计算s的哈希值并检查位数组上相应的数值,如果为0,返回false;(2)为明文添加随机字符串:(f)利用OpenSSL提供的函数int RAND_bytes(unsigned char *buf,int num)来产生5个随机数;(g)将产生的随机数转换成相应的16进制字符串,生成1个长度为10的Hex字符串;(3)加密:(h)使用步骤(1)实现生成布鲁姆滤波器;(i)计算明文长度,生成长度计数器;(j)使用步骤(2)中实现的代码生成随机字符串,并接在明文后面生成最终带加密字符串;(k)利用OpenSSL提供的API,加密步骤(j)得到的字符串;(l)将步骤(h)、(j)、(k)中得到的字符串组合在一起,形成最终密文;(4)解密:(m)忽略密文的布鲁姆滤波器部分,按照步骤(3)加密时的组合顺序提取出明文计数器和密文,解密密文后,截取明文计数器指示的明文长度,得到最终明文。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州锐盾信息科技有限公司,未经苏州锐盾信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410439845.0/,转载请声明来源钻瓜专利网。
- 上一篇:一种叉车用转向桥连杆制作方法
- 下一篇:一种新型的电瓶车控制器