[发明专利]一种采用Blowfish对文件进行加解密的方法、系统及装置有效
申请号: | 201911093465.5 | 申请日: | 2019-11-11 |
公开(公告)号: | CN110929274B | 公开(公告)日: | 2023-05-30 |
发明(设计)人: | 周婧;吴谦;杨旸;高强;曹易;周瑾瑜;杨洋;宋旅宁;于宗红 | 申请(专利权)人: | 深圳供电局有限公司 |
主分类号: | G06F21/60 | 分类号: | G06F21/60;G06F21/62 |
代理公司: | 深圳汇智容达专利商标事务所(普通合伙) 44238 | 代理人: | 熊贤卿 |
地址: | 518000 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 采用 blowfish 文件 进行 解密 方法 系统 装置 | ||
本发明提供了本发明提供的采用blowfish对文件进行加解密方法、系统及装置。其基于blowfish进行的加密和解密文件算法。通过在加密时,将待加密文件每隔固定字节(如8)进行分隔,并将最后一组数据补足,然后进行加密,并携带该补足的长度以及位置信息;在进行解密时,将最后一组解密出来的数据,根据补足长度及位置信息相应删除之前补足的内容。实施本发明,提供一种采用Blowfish加解密文件的方法及系统,可以实现对所述长度的文件实现Blowfish加解密。
技术领域
本发明涉及加解密技术领域,具体为一种采用Blowfish对文件进行加解密的方法、系统及装置。
背景技术
在一些应用场景中,例如生产许可证技术需要将许可证进行加密,然后在软件在验证许可证时候,再将许可证解密。其中,解密后的许可证包括如下信息。许可时长、许可开始时间、允许的特性以及允许的特性的使用时长等信息。例如在某个设备,说明书上是说具有某些功能的,但是这些功能默认是不能使用的,需要再购买授权来激活。这就是一个典型的生产许可证应用场景。当加密成功后,可以发送给顾客,表示许可证生成完成;当顾客导入加密的许可证后,产品会对许可证进行解密。
在现有技术中,通过采用blowfish算法进行加解密。blowfish是常用的加密解密算法,是一种对称加密算法,其原理是采用S盒子和P盒子对高低4字节数(或者左四字节、右四字节)进行加密。blowfish算法能够实现无损加解密。
但是blowfish是对一对4字节数进行的加密,也就是说,对8字节数加密很合适。对于文件来说,长度并非都是8字节的倍数,在现有技术中不能直接立刻使用blowfish对非8字节倍数的长度的文件进行加密。
发明内容
本发明所要解决的技术问题在于,提供一种采用Blowfish加解密文件的方法及系统,可以实现对所述长度的文件实现Blowfish加解密。
为了解决所述技术问题,本发明的一方面提供一种采用blowfish对文件进行加解密的方法,其包括以下步骤:
步骤S1,加密装置读入待加密文件,并获得所述待加密文件的长度;
步骤S2,对所述待加密文件的结尾进行补足处理,形成8个字节的倍数的补足的待加密文件;
步骤S3,对所述补足的待加密文件依顺序每8个字节根据预定的密钥进行blowfish加密计算,获得加密后密文数据;
步骤S4,将所有加密后密文数据、待加密文件长度、补足长度、补足位置、密文长度信息写入预定格式的文件中,形成加密后的文件,并发送给解密装置;
步骤S5,解密装置获得所述加密后的文件,解析出其中的加密数据、待加密文件长度、补足长度、补足位置、密文长度信息;
步骤S6、对所述加密数据依顺序每8个字节根据预定的密钥进行blowfish解密计算,获得每8个字节对应的解密后数据;
步骤S7,根据所述补足长度、补足位置,删除最后一组解密的数据中的补足的数据;
步骤S8,将所有解密后的数据进行组合,形成解密后的文件。
优选地,所述步骤S2进一步包括:
对所述待加密文件按每隔8个字节分隔,获得最后一组8个字节以下的数据,在所述最后一组数据前面或后面补充0,形成一组8个字节的数据。
优选地,所述步骤S4中的预定文件格式如下:
@fromlen@4@L1@padding@4@L2@littleendian@4@L3@content@L4@ABC DEFGHIJK…
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳供电局有限公司,未经深圳供电局有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911093465.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种烟株打顶灌药用一体化装置
- 下一篇:自动门锁分步上锁控制系统