本发明涉及视频加密,具体来说,涉及一种基于key值随机混淆加密播放方法。
背景技术:
1、随着大数据和云的兴起,数据存储作为一切其他数据行为的基础扮演着越来越重要的角色。分布式文件存储系统正被应用于各行各业中,其形态以集群形式提供可靠稳定的文件系统服务。
2、目前,现有通过文件流读取视频,将其转化为二进制数组通过对数组整体编译的方式进行加密。由于视频加密解密播放时需要将数组-视频文件之间进行来回切换,这种文件的读写方式效率低下,如果文件很大,把所有数据都转换成数组的时间会很长,严重影响数据处理的速度;从文件读数据的时候也要先把读出来的数组进行转换为需要的数据格式,从而从文件读数据的效率也同样很低下。
3、针对相关技术中的问题,目前尚未提出有效的解决方案。
技术实现思路
1、针对相关技术中的问题,本发明提出一种基于key值随机混淆加密播放方法,以克服现有相关技术所存在的上述技术问题。
2、本发明的技术方案是这样实现的:
3、一种基于key值随机混淆加密播放方法,包括以下步骤:
4、预先通过公有函数random(num)进行标定初始密匙key值;
5、将原始视频文件f1通过公有类filestream读取为字节流fs1;
6、使用公有函数random(num)生成一个指定随机范围的随机数r1;
7、进行将上一次对字节流fs1的写入位置记为r0,将r0通过公有函数tostring(num)转换为字符串s0,并将key与s0通过公有函数append(num)进行连接后生成包含key与s0的新的字符串str1,且将str1通过采用aes加密算法的私有函数encryptstringtobytes(num)进行加密,生成加密字节数组byt1;
8、在字节流fs1中从指定的r1位置开始,取出长度为l2的字节数据byt2,并对byt2通过采用aes加密算法的私有函数encryptbytestobytes(num)进行加密写入数据文件f2中;
9、在字节流fs1中从指定的r1位置开始将生成的加密字节数组byt1写入,完成替换;
10、根据用户指定加密次数n,在第n次执行加密,指定的r1通过采用aes加密算法的私有函数encryptstringtobytes(num)进行加密后使用公有函数file.write(num)写入数据文件f2中,通过公有类filestream将字节流fs1关闭,则原有视频文件f1转化为加密视频文件m1;
11、在视频需要进行播放时,将加密视频文件m1通过公有类filestream读取为字节流mfs1;
12、读取数据文件f2,对其通过采用aes解密算法的私有函数decryptstringfrombytes(num)进行解密;
13、通过公有方法file.readalllines(num)读取数据文件f2中记录的所有数据,并对key值进行验证;
14、按照视频加密过程中数据写入顺序,字符串数组strs中最后一个元素为倒数第二个字符串为最后一次字节流mfs1在写入位置pos0处对应的视频文件数据,采用公有函数filestream.write(num)写入字节流mfs1中,并在写入完成后,从字节流mfs1中通过使用公有函数seek(num)设置开始进行读取或写入的位置为pos1;
15、在读取写入位置pos时,若读取到默认数据,即-1时,则确认视频解密完成,并通过公有类filestream将字节流fs1关闭,则加密视频文件m1转化为原有视频文件f1,完成视频解密操作,视频正常播放。
16、进一步的,步骤所述使用公有函数random(num)生成一个指定随机范围的随机数r1,包括:r1随机生成范围为0至字节流fs1长度l1之间,通过使用公有函数seek(num)将字节流fs1开始进行写入操作的位置设置为r1。
17、进一步的,所述byt1包含长度属性l2,且当字节流fs首次写入时,r0的值设置为-1。
18、进一步的,步骤所述对key值进行验证,包括以下步骤:
19、通过file.readalllines(num)读取数据文件f2的所有行并将它们作为字符串数组strs返回;
20、按照视频加密过程中数据写入顺序,字符串数组strs中最后一个元素为最后一次字节流mfs1写入位置pos0;
21、从字节流mfs1中通过使用公有函数seek(num)设置开始进行读取或写入的位置为pos0,读取l2长度的字节数据至字节数组mbyt1中,对mbyt1通过采用aes解密算法的私有函数decryptstringfrombytes(num)进行解密后得到包含key与下一个字节流mfs1写入位置pos1。
22、本发明的有益效果:
23、本发明在对视频进行加密与解密操作时,由于每次只将视频文件数据的部分进行读取写入操作,因此不会占用较大的设备算力与运行内存,不会影响设备正常的操作与运行,在设备性能较低与视频文件较大时优点体现更加明显。
24、另外,由于在加密过程中加密位置随机生成,减少了因人为设置加密位置而导致的视频文件加密信息泄露。同时,多次加密会使加密区域产生重叠,因此在破解加密视频数据时,微小的错误会在经过多次加密过程叠加的情况下会放大错误数据,从而极大增加视频文件的破解难度。
1.一种基于key值随机混淆加密播放方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于key值随机混淆加密播放方法,其特征在于,步骤所述使用公有函数random(num)生成一个指定随机范围的随机数r1,包括:r1随机生成范围为0至字节流fs1长度l1之间,通过使用公有函数seek(num)将字节流fs1开始进行写入操作的位置设置为r1。
3.根据权利要求1所述的基于key值随机混淆加密播放方法,其特征在于,所述byt1包含长度属性l2,且当字节流fs首次写入时,r0的值设置为-1。
4.根据权利要求1所述的基于key值随机混淆加密播放方法,其特征在于,步骤所述对key值进行验证,包括以下步骤:
