一种加密与解密方法技术

技术编号:37209093 阅读:19 留言:0更新日期:2023-04-20 23:00
本发明专利技术提出了一种文件与数据的加密与解密方法,对于任意格式的文件:文档、数据、图片、音视频等均可以加密存储与传输与解密还原。加密文件仅增加少量字节,无过多冗余,与待加密文件大小相当。加密算法对原文件的每个字节均进行随机的加密运算,保密性高。对加密与解密程序进行自修复,不可随意复制,安全性高。安全性高。安全性高。

【技术实现步骤摘要】
一种加密与解密方法


[0001]本专利技术属于加密
,尤其涉及一种文件与数据的加密与解密方法。

技术介绍

[0002]现代社会是属于大数据的时代,由于近年来网络的发展,越来越多的数据、文件会在网上留下痕迹并且被记录下来,数据与文件的安全性显得尤为重要,一旦这些数据与文件发生泄漏,会对企业甚至国家安全带来重大安全隐患,数据与文件的加密可以很好地解决这个问题。
[0003]现有的加密技术主要是利用密钥进行加密,根据文件的格式,其加密算法基本是确定的,加密技术保密手段较为单一、易于破解,安全性较差。无论是个人还是企业,都应该对加强对关乎企业甚至国家安全的核心数据与文件进行保护,不被无关人员或机构随意获取。数据与文件泄露一般是通过非法拷贝或网络攻击进渠道发生的,因此,通过技术手段防止非法拷贝与网络攻击是保证数据与文件安全的重要手段。

技术实现思路

[0004]为克服现有技术中的不足,提出了一种文件与数据的加密与解密方法,加密后文件长度=待加密文件长度+两个字节整形字Num+四个字节长整形字Rndout+四个字节长整形字Rndout1+授权码Licence第一行和第二行字符串+两个字节Licence第一行长度+两个字节Licence第二行长度+四个字节分块数N,具体包括以下步骤:
[0005]a)将待加密文件打包为.rar格式的压缩文件;
[0006]b)产生加密文件;
[0007]c)存入两字节整形字Num;
[0008]d)存入四字节长整形字Rndout;/>[0009]e)存入四字节长整形字Rndout1;
[0010]f)将要加密的文件长度为整形字Num整数倍的内容加密存入:读取待加密文件两个字节,与长整形字Rndout相减,判断结果是否小于

32768,若是,则加上65536后存入两个字节,长整形字Rndout减1,若否,则直接存入两字节后长整形字Rndout减1;
[0011]g)Licence第一行字符串长度变换处理:取Licence第一行字符串长度,减去长整形字Rndout1,判断结果是否小于0,若是,则加上256后取反,存入字节,若否,则直接取反后存入字节;
[0012]h)长整形字Rndout1减1;
[0013]i)Licence第一行字符串变换处理:取Licence第一行字符串字符的ASCII码,减去长整形字Rndout1,判断结果是否小于0,若是,则加上256后取反,存入字节,若否,则直接取反后存入字节,长整形字Rndout1减1;
[0014]j)至长整形字Rndout1复原;
[0015]k)Licence第二行字符串长度变换处理:取授权码Licence第二行字符串长度,减
去长整形字Rndout1,判断结果是否小于0,若是,则加上256后取反,存入字节,若否,则直接取反后存入字节;
[0016]l)至长整形字Rndout1减1;
[0017]m)Licence第二行字符串变换处理:取Licence第二行字符串字符的ASCII码,减去长整形字Rndout1,判断结果是否小于0,若是,则加上256后取反,存入字节,若否,则直接取反后存入字节,长整形字Rndout1减1;
[0018]n)至长整形字Rndout1复原;
[0019]o)对待加密文件剩余内容处理:读取一个字节,减去长整形字Rndout1,判断结果是否小于0,若是,则加上256后取反,存入字节,若否,则直接取反后存入字节,长整形字Rndout1减1;
[0020]至此,完成文件加密。
[0021]解密流程即为加密流程的逆运算。
[0022]进一步地,加密过程中,判断长整形字Rndout和长整形字Rndout1值是否为1,若为1,则进行复原,若不为1,则继续减1。
[0023]进一步地,加密文件头部为10个辅助字节,存入解密用的参考数据,文件末尾为文件分块数N,文件中间部分为Licence信息,其它部分则为经过加密运算的文件数据,具体由如下部分组成:
[0024]a)整形字Num:表示文件分块大小;
[0025]b)长整型字Rndout,为0~999的随机数:用于文件加密变换的初始因子;
[0026]c)长整型字Rndout1,0~99的随机数:用于Licence加密变换的初始因子;
[0027]d)加密文件分块1;
[0028][0029]e)加密文件分块N/2,N为偶数或(N

1)/2,N为奇数;
[0030]f)Licence变换处理结果;
[0031]g)加密文件分块N/2+1,N为偶数或(N

1)/2+1,N为奇数;
[0032][0033]h)加密文件分块N;
[0034]i)加密文件分块N之后的剩余内容;
[0035]j)Licence第一行长度:两个字节;
[0036]k)Licence第二行长度:两个字节;
[0037]l)分块数N:四个字节,N=(待加密文件长/Num)的整数部分。
[0038]进一步地,所述授权码Licence产生规则为:
[0039]口令规则:字母、符合与数字组合,区分大小写,最大长度10位;
[0040]Licence包括两行,第一行由口令处理结果、口令长度、10位随机数三部分组成;
[0041]口令处理结果由口令处理后字符串长度位数、口令处理字符串长度、口令处理结果组成;第i个口令字符的处理结果如下:
[0042][0043][0044]本专利技术的有益效果在于
[0045]1)对于任意格式的文件:文档、数据、图片、音视频等均可以加密存储与传输与解密还原。
[0046]2)加密文件仅增加少量字节,无过多冗余,与待加密文件大小相当。
[0047]3)加密算法对原文件的每个字节均进行随机的加密运算,保密性高。
[0048]4)对加密与解密程序进行自修复,不可随意复制,安全性高。
附图说明
[0049]图1为授权、加密和解密流程图。
[0050]图2为Licence规则示意图。
[0051]图3为加密后文件结构示意图。
[0052]图4为加密处理流程示意图。
[0053]图5为Licence第一行字符串长度变换处理示意图。
[0054]图6为Licence第一行字符串变换处理示意图。
[0055]图7为Licence第二行字符串长度变换处理示意图。
[0056]图8为Licence第二行字符串变换处理示意图。
[0057]图9为剩余文件内容加密处理示意图。
[0058]图10为变量处理示意图。
具体实施方式
[0059]下面将对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种加密方法,其特征在于:加密文件长度=待加密文件长度+两个字节整形字Num+四个字节长整形字Rndout+四个字节长整形字Rndout1+授权码Licence第一行和第二行字符串+两个字节Licence第一行长度+两个字节Licence第二行长度+四个字节分块数N,具体包括以下步骤:a)将待加密文件打包为.rar格式的压缩文件;b)产生加密文件;c)存入两字节整形字Num;d)存入四字节长整形字Rndout;e)存入四字节长整形字Rndout1;f)将要加密的文件长度为整形字Num整数倍的内容加密存入:读取待加密文件两个字节,与长整形字Rndout相减,判断结果是否小于

32768,若是,则加上65536后存入两个字节,长整形字Rndout减1,若否,则直接存入两字节后长整形字Rndout减1;g)Licence第一行字符串长度变换处理:取Licence第一行字符串长度,减去长整形字Rndout1,判断结果是否小于0,若是,则加上256后取反,存入字节,若否,则直接取反后存入字节;h)长整形字Rndout1减1;i)Licence第一行字符串变换处理:取Licence第一行字符串字符的ASCII码,减去长整形字Rndout1,判断结果是否小于0,若是,则加上256后取反,存入字节,若否,则直接取反后存入字节,长整形字Rndout1减1;j)至长整形字Rndout1复原;k)Licence第二行字符串长度变换处理:取授权码Licence第二行字符串长度,减去长整形字Rndout1,判断结果是否小于0,若是,则加上256后取反,存入字节,若否,则直接取反后存入字节;l)至长整形字Rndout1减1;m)Licence第二行字符串变换处理:取Licence第二行字符串字符的ASCII码,减去长整形字Rndout1,判断结果是否小于0,若是,则加上256后取反,存入字节,若否,则直接取反后存入字节,长整形字Rndout1减1;n)至长整形字Rndout1复原;o)对待加密文件剩余内容处理:读...

【专利技术属性】
技术研发人员:程望东
申请(专利权)人:中国电子科技集团公司第十四研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1