本发明涉及信息加密技术领域,特别是涉及一种用于视频数据传输的自动识别加密解密方法及系统。
背景技术:
随着科技飞速发展,电子数据的传播已经广泛融入到人们的日常生活中,例如,视频、音频等数据等电子数据。
人们可以利用通讯设备来存储电子数据,有些涉及个人隐私的资料(例如,部分照片、视频、手机银行的资料)不希望被其它人轻易访问,可以对不希望被其它人访问的资料进行加密。相关技术中,加密方式通常是密码加密,加密的密码可以是字符、数字或图案等;当访问加密的资料时需要输入正确的密码。
现今,常用的视频加密解密工具通常是面向用户手动操作的软件工具,主要类型如下:
1)用户需手动打开软件后选择需要加密或解密的视频文件,之后选择相应加密或解密操作;
2)用户需人为判断该视频是否已被加密,如尝试播放视频文件,若无法正常播放则该视频文件可能被加密。
常规的加解密软件工具的加密或解密的操作需要人为执行,不便于用户的使用,加密和解密的过程缓慢。将文件的所有部分加密虽然安全性高,但是极大的占用内存空间,不利于文件的存储和传输。并且无法对指定位置进行加密或解密操作,使用不灵活。
技术实现要素:
为解决上述技术问题,本发明采用下述技术方案
一种用于视频数据传输的自动识别加密解密方法,该方法的步骤包括:
S1、获取待传输视频文件的传递参数,确认待传输视频文件路径和待传输视频文件的当前状态;
S2、根据用户加密或解密指令,对当前待传输视频文件进行加密或解密处理;
S3、判断加密或解密处理操作是否成功,并将最终的操作状态返回给用户,完成自动识别加密操作。
优选地,所述待传输视频文件的当前状态包括:已加密、已解密和未处理三种状态。
优选地,所述步骤S2包括:
S21、对最大尝试加密或解密操作次数maxCount、当前加密或解密操作次数count和视频加密或解密结果的初始状态进行初始化设定;
S22、通过判断条件:加密或解密状态是否为操作失败状态且当前加密或解密次数count小于最大尝试加密或解密操作次数maxCount,决定是否可以尝试为待传输视频文件加密;若满足判断条件,则执行步骤S23,若不满足判断条件,则执行步骤S3;
S23、为视频文件设置加密或解密操作的操作标识,并判断操作标识设置是否成功,若成功,则执行步骤S24,若失败,则尝试加密或解密操作次数count加1,并重复步骤S22和S23,直至标识成功或不满足步骤S22的判断条件为止;
S24、根据用户需求,对待传输视频文件指定位置的内容进行加密或解密操作;
S25、判断加密或解密操作是否成功,若成功,则完成待传输视频文件的加密或解密操作,若失败,则执行步骤S22至S25,直至操作成功或不满足步骤S22的判断条件为止。
优选地,所述S24包括:
S241、将待传输视频文件的头部1024字节作为加密或解密的对象;
S242、设初始位置为site=0;
S243、判断当前待传输视频文件的头部1024字节是否加密完成,若未完成,则从1024字节中取出16字节的数据,并对这16个字节数据进行加密处理,若已完成加密,则从1024字节中取出16字节的数据,并对这16个字节数据进行解密处理;
S244、将加密或解密后的数据写入site处,若写失败则退出;
S245、再在所述1024字节中取16字节,即为site=site+16,并重复执行步骤S243至步骤S245,直至所述1024字节数据全部加密或解密完成。
优选地,所述步骤S243中若读取数据失败或加密/解密操作失败,则直接退出。
优选地,所述步骤S3包括:
S31、若加密或解密操作成功,则返回操作成功状态;
S32、若加密或解密操作失败,则尝试回滚到视频文件进行加密或解密操作前的状态;
S33、若回滚操作成功,则返回操作失败状态,若回滚操作失败,则返回无法复原状态。
一种用于视频数据传输的自动识别加密系统,该系统包括:
文件识别单元,获取视频文件传输请求,确认待传输视频文件路径和待传输视频文件的当前状态;
加密单元,根据用户加密或解密指令,对当前待传输视频文件进行加密或解密处理;
状态反馈单元,判断加密或解密处理操作是否成功,并将最终的操作状态返回给用户,完成自动识别加密操作。
优选地,所述待传输视频文件的当前状态包括:已加密、已解密和未处理三种状态。
优选地,所述加密单元内包括:
初始化模块,对最大尝试加密或解密操作次数maxCount、当前加密或解密操作次数count和视频加密或解密结果的初始状态进行初始化设定;
第一判断模块,通过判断条件:加密或解密状态是否为操作失败状态且当前加密或解密次数count小于最大尝试加密或解密操作次数maxCount,决定是否可以尝试为待传输视频文件加密;若满足判断条件,则为视频文件设置加密或解密操作的操作标识,若不满足判断条件,则向用户返回状态反馈单元确定的操作状态;
操作标识设定模块,为视频文件设置加密或解密操作的操作标识,并判断操作标识设置是否成功,若成功,则进行用户指定内容加密或解密操作,若失败,则尝试加密或解密操作次数count加1,并重复步骤第一判断模块和操作标识设定模块的操作,直至标识成功或不满足第一判断模块的判断条件为止;
指定内容处理模块,根据用户需求,对待传输视频文件指定位置的内容进行加密或解密操作;
第二判断模块,判断加密或解密操作是否成功,若成功,则完成待传输视频文件的加密或解密操作,若失败,则执行第一判断模块、操作标识设定模块、指定内容处理模块和第二判断模块的操作,直至操作成功或不满足第一判断模块的判断条件为止。
优选地,所述状态反馈单元包括:
加密结果判断模块,若加密或解密操作成功,则返回操作成功状态,若加密或解密操作失败,则尝试回滚到视频文件进行加密或解密操作前的状态;
回滚结果判断模块,若回滚操作成功,则返回操作失败状态,若回滚操作失败,则返回无法复原状态。
本发明的有益效果如下:
本发明所述技术方案通过调用方式运行,而非界面式手动操作,方便系统或程序调用执行。增加加密或解密状态标识,方便系统或程序判断文件加密或解密状态。利用本方案生成库文件,大大降低了该工具插件的存储空间,极大的提高了加解密的速度。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明;
图1示出本方案所述自动识别加密解密方法的示意图;
图2示出本方案所述局部循环加密或解密方法的示意图。
具体实施方式
为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。
如图1所示,本发明公开了一种用于视频数据传输的自动识别加密解密方法,该方法的步骤包括:
步骤S1、获取待传输视频文件的传递参数,确认待传输视频文件路径和待传输视频文件的当前状态;其中,所述待传输视频文件的当前状态包括:已加密、已解密和未处理三种状态。其中,该步骤中需调用两个参数,第一参数为待加密视频文件路径,第二参数为操作参数,并通过以下代码表示:
数字0代表解密,传递此参数,方法会对视频进行解密操作;
数字1代表加密,传递此参数,方法会对视频进行加密操作;
数字2代表获取视频文件状态,传递此参数,方法只检查文件当前状态,会返回三种状态,即数字0代表文件未进行任何处理;数字1代表文件已加密;数字2代表文件已解密。
步骤S2、根据用户加密或解密指令,对当前待传输视频文件进行加密或解密处理。该步骤S2包括:
S21、对最大尝试加密或解密操作次数maxCount、当前加密或解密操作次数count和视频加密或解密结果的初始状态进行初始化设定;
S22、通过判断条件:加密或解密状态是否为操作失败状态且当前加密或解密次数count小于最大尝试加密或解密操作次数maxCount,决定是否可以尝试为待传输视频文件加密;若满足判断条件,则执行步骤S23,若不满足判断条件,则执行步骤S3;
S23、为视频文件设置加密或解密操作的操作标识,并判断操作标识设置是否成功,若成功,则执行步骤S24,若失败,则尝试加密或解密操作次数count加1,并重复步骤S22和S23,直至标识成功或不满足步骤S22的判断条件为止;
S24、根据用户需求,对待传输视频文件指定位置的内容进行加密或解密操作;其中,如图2所示,该步骤S24包括:
S241、将待传输视频文件的头部1024字节作为加密或解密的对象;
S242、设初始位置为site=0;
S243、判断当前待传输视频文件的头部1024字节是否加密完成,若未完成,则从1024字节中取出16字节的数据,并对这16个字节数据进行加密处理,若已完成加密,则从1024字节中取出16字节的数据,并对这16个字节数据进行解密处理;该步骤中若读取数据失败或加密/解密操作失败,则直接退出
S244、将加密或解密后的数据写入site处,若写失败则退出;
S245、再在所述1024字节中取16字节,即为site=site+16,并重复执行步骤S243至步骤S245,直至所述1024字节数据全部加密或解密完成;
S25、判断加密或解密操作是否成功,若成功,则完成待传输视频文件的加密或解密操作,若失败,则执行步骤S22至S25,直至操作成功或不满足步骤S22的判断条件为止。
S3、判断加密或解密处理操作是否成功,并将最终的操作状态返回给用户,完成自动识别加密操作。所述步骤S3包括:
S31、若加密或解密操作成功,则返回操作成功状态;
S32、若加密或解密操作失败,则尝试回滚到视频文件进行加密或解密操作前的状态;
S33、若回滚操作成功,则返回操作失败状态,若回滚操作失败,则返回无法复原状态。
本方案进一步公开了一种用于视频数据传输的自动识别加密系统,该系统包括:
文件识别单元,获取视频文件传输请求,确认待传输视频文件路径和待传输视频文件的当前状态,即已加密、已解密或未处理三种状态;
加密单元,根据用户加密或解密指令,对当前待传输视频文件进行加密或解密处理;所述加密单元内包括:
初始化模块,对最大尝试加密或解密操作次数maxCount、当前加密或解密操作次数count和视频加密或解密结果的初始状态进行初始化设定;
第一判断模块,通过判断条件:加密或解密状态是否为操作失败状态且当前加密或解密次数count小于最大尝试加密或解密操作次数maxCount,决定是否可以尝试为待传输视频文件加密;若满足判断条件,则为视频文件设置加密或解密操作的操作标识,若不满足判断条件,则向用户返回状态反馈单元确定的操作状态;
操作标识设定模块,为视频文件设置加密或解密操作的操作标识,并判断操作标识设置是否成功,若成功,则进行用户指定内容加密或解密操作,若失败,则尝试加密或解密操作次数count加1,并重复步骤第一判断模块和操作标识设定模块的操作,直至标识成功或不满足第一判断模块的判断条件为止;
指定内容处理模块,根据用户需求,对待传输视频文件指定位置的内容进行加密或解密操作;
第二判断模块,判断加密或解密操作是否成功,若成功,则完成待传输视频文件的加密或解密操作,若失败,则执行第一判断模块、操作标识设定模块、指定内容处理模块和第二判断模块的操作,直至操作成功或不满足第一判断模块的判断条件为止。
状态反馈单元,判断加密或解密处理操作是否成功,并将最终的操作状态返回给用户,完成自动识别加密操作。所述状态反馈单元包括:
加密结果判断模块,若加密或解密操作成功,则返回操作成功状态,若加密或解密操作失败,则尝试回滚到视频文件进行加密或解密操作前的状态;
回滚结果判断模块,若回滚操作成功,则返回操作失败状态,若回滚操作失败,则返回无法复原状态。
本方案可以采用C/C++语言编写,生成系统环境下能够调用的动态库,供视频软件调用。例如,生成Android环境下可以调用的动态库so文件,供Android环境的视频软件调用。本方案如采用常规代码占用存储空间大小为104k,若编译生成库文件占用存储空间30k左右,更加适合服务器或其他相关视频播放软件的快速调用。
下面通过一组实施例对本发明做进一步说明:
如图1所示,本发明提供了一种用于视频数据传输的自动识别加密解密方法。该方法的具体步骤如下:
在步骤S1中,获取并处理传递的参数,包括需加密或解密的视频文件路径、具体操作指令;其中,具体操作指令为查看视频文件的加解密状态、加密操作和解密操作。如果操作指令为查看视频文件的加解密状态,则执行步骤S2。
S2步骤中会对视频文件进行状态判断,返回状态有已加密、已解密和未处理三种状态。已加密状态表示目标视频现在为加密状态,需进行解密才能正常浏览;已解密状态表示目标视频现在为解密状态,可以进行浏览;未处理状态表示该视频从未进行过加密或解密操作。
如果操作指令为加密或解密视频视频文件,则执行步骤S3。
S2步骤会根据指令对视频文件进行加密或解密操作,操作完成后执行S3返回加密/解密操作的执行结果,结果分为加密或解密成功能;加密或解密失败,如果加密或解密失败程序会尝试回滚视频文件操作前状态;视频文件无法复原,当加密或解密失败后,回滚操作也同样失败时,会返回该状态标识。当操作指令为加密或解密视频文件时,执行步骤S3。
对于步骤S2中具体的加密或解密流程是通过本方案构建的局部循环加密或解密方法,该方法的具体执行步骤包括:
S21、对最大尝试加密或解密操作次数maxCount、当前加密或解密操作次数count和视频加密或解密结果的初始状态进行初始化设定;
S22、通过判断条件:加密或解密状态是否为操作失败状态且当前加密或解密次数count小于最大尝试加密或解密操作次数maxCount,决定是否可以尝试为待传输视频文件加密;若满足判断条件,则执行步骤S23,若不满足判断条件,则执行步骤S3;
S23、为视频文件设置加密或解密操作的操作标识,并判断操作标识设置是否成功,若成功,则执行步骤S24,若失败,则尝试加密或解密操作次数count加1,并重复步骤S22和S23,直至标识成功或不满足步骤S22的判断条件为止;
S24、根据用户需求,对待传输视频文件指定位置的内容进行加密或解密操作;
S25、判断加密或解密操作是否成功,若成功,则完成待传输视频文件的加密或解密操作,若失败,则执行步骤S22至S25,直至操作成功或不满足步骤S22的判断条件为止。
4、根据权利要求1所述的自动识别加密方法,其特征在于,所述S24包括:
S241、将待传输视频文件的头部1024字节作为加密或解密的对象;
S242、设初始位置为site=0;
S243、判断当前待传输视频文件的头部1024字节是否加密完成,若未完成,则从1024字节中取出16字节的数据,并对这16个字节数据进行加密处理,若已完成加密,则从1024字节中取出16字节的数据,并对这16个字节数据进行解密处理;若读取数据失败或加密/解密操作失败,则直接退出;
S244、将加密或解密后的数据写入site处,若写失败则退出;
S245、再在所述1024字节中取16字节,即为site=site+16,并重复执行步骤S243至步骤S245,直至所述1024字节数据全部加密或解密完成。
在state为操作成功状态,或者已加密或解密操作次数大于等于最大尝试加密或解密操作次数后会进入步骤S3。
步骤S3中根据最终结果会做如下操作,当加密或解密操作成功时,返回操作成功状态;当加密或解密操作失败后,尝试回滚到视频文件操作前状态,如果成功回滚,返回操作失败状态;如果回滚操作也失败,则返回无法复原状态。
整体视频加密或解密视频文件操作完成。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。