文件加密方法及装置、文件解密方法及装置与流程

文档序号:12064207阅读:169来源:国知局
本发明涉及文件加密
技术领域
:,具体而言,涉及一种文件加密方法及装置、文件解密方法及装置。
背景技术
::目前,用户经常在手机或PAD(PortableAndroidDevice,平板电脑)等终端中存储文件,有的文件可能涉及用户隐私,用户不希望他人获知文件的内容,因此需要对文件进行加密。当前,相关技术中通常使用用户自定义的密码对文件进行加密。当需要对文件进行加密时,用户自定义一个数字、字母或空格等字符组成的密码,将该密码输入终端中。终端接收用户提交的密码,通过该密码对需要加密的文件进行加密。当用户再次打开加密后的文件时,向终端输入上述自定义的密码,终端根据用户输入的密码对加密后的文件进行解密,以打开该文件。但采用相关技术的加密方式,在密码泄露时,容易导致加密后的文件丢失,且在用户忘记密码时,无法打开加密后的文件。技术实现要素:有鉴于此,本发明实施例的目的在于提供一种文件加密方法及装置、文件解密方法及装置,通过密钥设备的MAC地址及用户点击密钥设备的按键产生的按键信息来对文件加密。密钥设备的MAC地址是唯一标识该密钥设备的字符串,其中的字符组成非常随机且无规律可循,加上用户点击密钥设备的按键产生的按键信息,使得本发明进行文件加密的密钥复杂度很高,很难被破解,大大提高了文件加密的安全性,且与密钥设备建立连接后用户只需记住简单的点击按键的操作即可打开加密后的文件。第一方面,本发明实施例提供了一种文件加密方法,所述方法包括:获取用户选择的待加密文件;通过近场通信连接获取所述用户指定的密钥设备的介质访问控制MAC地址;获取所述用户点击所述密钥设备的按键所产生的按键信息;根据所述MAC地址和所述按键信息对所述待加密文件进行加密。结合第一方面,本发明实施例提供了上述第一方面的第一种可能的实现方式,其中,所述根据所述MAC地址和所述按键信息对所述待加密文件进行加密,包括:将所述MAC地址和所述按键信息融合,得到合并字符串;通过哈希运算将所述合并字符串变换为消息摘要算法MD5字符串;根据所述MD5字符串对所述待加密文件进行加密。结合第一方面的第一种可能的实现方式,本发明实施例提供了上述第一方面的第二种可能的实现方式,其中,所述将所述MAC地址和所述按键信息融合,得到合并字符串,包括:将所述按键信息添加在所述MAC地址包括的所有字符之前,得到合并字符串;或者,将所述按键信息添加在所述MAC地址包括的所有字符之后,得到合并字符串;或者,从所述MAC地址中定位出序号分别为第一预设序号和第二预设序号的两个字符,将所述按键信息插入定位出的所述两个字符之间,得到合并字符串,定位出的所述两个字符为相邻的两个字符。结合第一方面,本发明实施例提供了上述第一方面的第三种可能的实现方式,其中,所述通过近场通信连接获取所述用户指定的密钥设备的MAC地址之前,还包括:检测当前是否存在已建立近场通信连接的密钥设备;如果是,则指示所述用户从已建立近场通信连接的密钥设备中选择一个密钥设备;如果否,则指示所述用户启动一个密钥设备,建立与所述用户启动的密钥设备之间的近场通信连接。结合第一方面,本发明实施例提供了上述第一方面的第四种可能的实现方式,其中,所述获取所述用户点击所述密钥设备的按键所产生的按键信息,包括:在预设时长内接收所述密钥设备传输的每个按键指令;分别获取每个所述按键指令对应的按键编码;按照预设顺序将每个所述按键指令对应的按键编码组成按键信息。第二方面,本发明实施例提供了一种文件解密方法,所述方法包括:获取用户选择的待解密密文;通过近场通信连接获取所述用户指定的密钥设备的MAC地址;获取所述用户点击所述密钥设备的按键所产生的按键信息;根据所述MAC地址和所述按键信息,对所述待解密密文进行解密。结合第二方面,本发明实施例提供了上述第二方面的第一种可能的实现方式,其中,所述根据所述MAC地址和所述按键信息,对所述待解密密文进行解密,包括:将所述MAC地址和所述按键信息融合,得到合并字符串;通过哈希运算将所述合并字符串变换为消息摘要算法MD5字符串;根据所述MD5字符串对所述待解密密文进行解密。结合第二方面,本发明实施例提供了上述第二方面的第二种可能的实现方式,其中,所述获取所述用户点击所述密钥设备的按键所产生的按键信息,包括:在预设时长内接收所述密钥设备传输的每个按键指令;分别获取每个所述按键指令对应的按键编码;按照预设顺序将每个所述按键指令对应的按键编码组成按键信息。第三方面,本发明实施例提供了一种文件加密装置,所述装置包括:获取模块,用于获取用户选择的待加密文件;通过近场通信连接获取所述用户指定的密钥设备的MAC地址;获取所述用户点击所述密钥设备的按键所产生的按键信息;加密模块,用于根据所述MAC地址和所述按键信息对所述待加密文件进行加密。第四方面,本发明实施例提供了一种文件解密装置,所述装置包括:获取模块,用于获取用户选择的待解密密文;通过近场通信连接获取所述用户指定的密钥设备的MAC地址;获取所述用户点击所述密钥设备的按键所产生的按键信息;解密模块,用于根据所述MAC地址和所述按键信息,对所述待解密密文进行解密。在本发明实施例提供的方法及装置中,获取用户选择的待加密文件;通过近场通信连接获取用户指定的密钥设备的硬件MAC地址;获取用户点击该密钥设备的按键所产生的按键信息;根据MAC地址和按键信息对待加密文件进行加密。本发明通过密钥设备的MAC地址及用户点击密钥设备的按键产生的按键信息来对文件加密。密钥设备的MAC地址是唯一标识该密钥设备的字符串,其中的字符组成非常随机且无规律可循,加上用户点击密钥设备的按键产生的按键信息,使得本发明进行文件加密的密钥复杂度很高,很难被破解,大大提高了文件加密的安全性,且与密钥设备建立连接后用户只需记住简单的点击按键的操作即可打开加密后的文件。为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1示出了本发明实施例1所提供的一种文件加密方法的流程图;图2示出了本发明实施例2所提供的一种文件解密方法的流程图;图3示出了本发明实施例3所提供的一种文件加密装置的结构示意图;图4示出了本发明实施例4所提供的一种文件解密装置的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。考虑到相关技术中采用用户自定义的密码进行文件加密的方式,在密码泄露时,容易导致加密后的文件丢失,且在用户忘记密码时,无法打开加密后的文件。基于此,本发明实施例提供了一种文件加密方法及装置、文件解密方法及装置,下面通过实施例进行描述。实施例1参见图1,本发明实施例提供了一种文件加密方法,该方法具体包括以下步骤:步骤101:获取用户选择的待加密文件。本发明实施例的执行主体为手机或PAD等终端,终端上安装有用于加密文件的APP(Application,应用程序)。当用户需要通过终端加密文件时,需要先选取需要加密的待加密文件。在本发明实施例中,待加密文件可以是单个的文件,也可以是包括多个文件的文件夹。在本发明实施例中,通过安卓系统自带的文件浏览器来向用户显示本地文件,显示本地文件的代码如下所示:Intentintent=newIntent(Intent.ACTION_GET_CONTENT);//初始化连接的intent(意图);intent.setType("*/*");//设置类型,该类型可以是任意类型;intent.addCategory(Intent.CATEGORY_OPENABLE);//指示一个GET_CONTENT意图,该意图用来打开选择文件的界面;startActivityForResult(intent,1);//开始执行。通过执行上述显示本地文件的代码,向用户显示文件选择界面,用户浏览文件选择界面中包括的文件,通过点击其中的一个文件,来选择被点击的文件作为待加密文件。终端当检测到用户点击文件选择界面中的一文件时,通过回调函数onActivityResult()来获取用户选择的文件的绝对地址,即获取到待加密文件的绝对地址。由于在用户选择完待加密文件后,可能会存在一些误操作误将待加密文件从内存中删除,因此本发明实施例在上述获取到待加密文件的绝对地址后,还通过执行如下代码来判断待加密文件是否存在,代码示例如下:Filef=newFile("/storage/sdcard/test.pdf");//根据获取的待加密文件的绝对地址新建一个文件对象;f.exists()//通过新建的文件对象判断待加密文件是否存在。上述通过基于待加密文件的绝对地址新建的文件对象来执行函数exists(),通过函数exists()判断待加密文件是否存在。若函数exists()的返回值为false,则表明待加密文件不存在。如果函数exists()的返回值为true,则表明待加密文件存在。当函数exists()的返回值为false,确定用户选择的待加密文件不存在时,再次显示文件选择界面给用户,指示用户重新选择一个文件作为待加密文件。当用户重新选择一个文件时,再次通过上述方式确定用户重新选择的文件是否存在,直到确定用户选择的待加密文件存在于内存中为止。当确定用户选择的待加密文件存在时,根据上述获取的待加密文件的绝对地址,获取待加密文件的所有文件内容。通过本步骤的操作获取到待加密文件后,通过如下步骤102-104的操作来对待加密文件进行加密,得到待加密文件对应的密文。步骤102:通过近场通信连接获取用户指定的密钥设备的MAC(MediaAccessControl,介质访问控制)地址。上述密钥设备可以为用户随身使用的运动手环或蓝牙耳机等设备。上述近场通信连接可以为蓝牙连接、红外连接或者NFC(NearFieldCommunication,近距离无线通讯技术)连接等。本发明实施例中,获取用户指定的密钥设备的MAC地址之前,首先通过如下操作来确定用户指定的密钥设备,具体包括:检测当前是否存在已建立近场通信连接的密钥设备;如果是,则指示用户从已建立近场通信连接的密钥设备中选择一个密钥设备;如果否,则指示用户启动一个密钥设备,建立与用户启动的密钥设备之间的近场通信连接。在本发明实施例中,通过如下方式来检测当前是否存在已建立近场通信连接的密钥设备,包括:获取安卓系统中的密钥设备适配器,判断获取的密钥设备适配器是否为空,如果是,则表明终端当前没有与任何密钥设备建立近场通信连接,则后续指示用户启动一个密钥设备,建立终端与用户启动的该密钥设备之间的近场通信连接。当获取的密钥设备适配器中包含一些密钥设备的设备标识时,则表明终端与这些设备标识对应的密钥设备建立过近场通信连接。此时通过监听器来监听终端当前是否与这些设备标识对应的密钥设备建立了近场通信连接。当通过监听器监听密钥设备适配器中的一个设备标识时,若监听器返回的状态为服务断开状态,则表明终端当前没有与该设备标识对应的密钥设备建立近场通信连接。若监听器返回的状态为服务连接状态,则表明终端当前建立了与该设备标识对应的密钥设备之间的近场通信连接。若通过上述方式监听到当前密钥设备适配器中的所有设备标识对应的密钥设备均未与终端建立近场通信连接,则指示用户启动一个密钥设备,建立终端与用户启动的该密钥设备之间的近场通信连接。若通过上述方式监听到当前密钥设备适配器中至少一个设备标识对应的密钥设备与终端建立了近场通信连接,则指示用户从已建立近场通信连接的密钥设备中选择一个密钥设备。在本发明实施例中,假设密钥设备为蓝牙设备,则通过调用蓝牙适配器读取函数BluetoothAdapter.getDefaultAdapter()来获取蓝牙适配器。若获取的蓝牙适配器不为空,则通过蓝牙监听器BluetoothProfile.ServiceListener()对蓝牙适配器中包括的设备标识进行监听。本发明实施例通过上述方式确定出用户指定的密钥设备后,调用函数getConnectedDevices()来获取用户指定的密钥设备的硬件信息,通过调用地址获取函数getAddress()从硬件信息中获取用户指定的密钥设备的MAC地址。在本发明实施例中,获取到密钥设备的MAC地址后,终端还记录该密钥设备的设备标识,以便在解密待加密文件的密文时通过同一个密钥设备来进行文件解密。在本发明实施例中,通过本步骤获取到密钥设备的MAC地址之后,可以直接通过哈希运算将获取的MAC地址变换为MD5(MessageDigestAlgorithm5,消息摘要算法第5版)字符串,通过该MD5字符串对待加密文件进行加密,得到待加密文件对应的密文。但是仅根据密钥设备的MAC地址来对文件进行加密的安全性有限,为了进一步提高文件加密的安全性,本发明实施例可以继续通过如下步骤103和104的步骤来对待加密文件进行加密。步骤103:获取用户点击密钥设备的按键所产生的按键信息。由于运动手环或蓝牙耳机等密钥设备上都有一个或者多个按键,终端与密钥设备建立近场通信连接后,可以接收到密钥设备上的按键的点击事件。基于此,本发明实施例可以通过密钥设备上的这些按键来进一步加强文件加密的复杂度。在本发明实施例中,终端将会弹出提示框提示用户是否需要密钥设备加强加密验证。若用户选择需要密钥设备加强加密验证,则用户可以在预设时长内点击密钥设备上的按键来加强验证。当终端接收到用户提交的确定加强验证的指令时,在预设时长内接收密钥设备传输的每个按键指令;分别获取每个按键指令对应的按键编码;按照预设顺序将每个按键指令对应的按键编码组成按键信息。上述预设顺序可以为按照按键指令的接收时间从前到后或从后到前的顺序。上述预设时长可以为5秒或10秒等。为了进一步便于理解上述获取按键信息的操作,下面举例进行说明。例如,假设密钥设备为用户的蓝牙耳机,蓝牙耳机上有音量加和音量减两个按键,假设终端中预置的音量加按键对应的按键编码为233,音量减按键对应的按键编码为234。假设预设时长为10秒。当终端接收到用户提交的确定加强验证的指令时,终端等待10秒,在这10秒内检测蓝牙耳机上的按键点击事件,假设在这10秒内用户先点击了一次音量加按键,接着点击了两次音量减按键,则在这10秒内终端接收到密钥设备传输的一个音量加指令及两个音量减指令,终端获取到音量加指令对应的按键编码为233,获取到音量减指令对应的按键编码为234。假设上述预设顺序为按照按键指令的接收时间从前到后的顺序,则最终组成的按键信息为233234234。在本发明实施例中,当密钥设备为蓝牙设备时,可以通过开启蓝牙按键的监听器来监听蓝牙设备的按键点击事件,该监听器通过蓝牙接收函数BluetoothReceiver()进行按键监听。当监听到事件为按键点击事件EXTRA_KEY_EVENT时,则表明用户点击了蓝牙设备的按键,此时通过调用获取按键编码函数getKeyCode()来获取用户点击的按键的按键编码,并将该按键编码记录下来。如果用户又按了一次按键,则通过上述方式继续记录用户点击的按键的按键编码,直到终端监听按键点击事件的时长达到预设时长时,将在该预设时长内记录的所有按键编码叠加成一个字符串,该字符串即为获取到的用户点击密钥设备的按键所产生的按键信息。具体可以按照上述预设顺序来叠加预设时长内记录的所有按键编码。步骤104:根据MAC地址和按键信息对待加密文件进行加密。本发明实施例中,获取到密钥设备的MAC地址,及获取到用户点击密钥设备的按键所产生的按键信息后,将MAC地址和按键信息融合,得到合并字符串;通过哈希运算将合并字符串变换为MD5字符串;根据该MD5字符串对待加密文件进行加密。本发明实施例可以通过如下三种方式来将MAC地址和按键信息融合。第一,将按键信息添加在MAC地址包括的所有字符之前,得到合并字符串。例如,假设按键信息为233234234,MAC地址为0050BACE070C,则将按键信息添加在MAC地址包括所有字符之前,得到的合并字符串为2332342340050BACE070C。第二,将按键信息添加在MAC地址包括的所有字符之后,得到合并字符串。例如,假设按键信息为233234234,MAC地址为0050BACE070C,则将按键信息添加在MAC地址包括所有字符之后,得到的合并字符串为0050BACE070C233234234。第三,从MAC地址中定位出序号分别为第一预设序号和第二预设序号的两个字符,将按键信息插入定位出的两个字符之间,得到合并字符串,定位出的两个字符为相邻的两个字符。上述第一预设序号和第二预设序号为相邻的两个序号,如第一预设序号为3,第二预设序号为4。本发明实施例并不具体限定第一预设序号和第二预设序号的值,实际应用中终端可以根据MAC地址包括的字符串的位数随机确定第一预设序号和第二预设序号的值。终端确定第一预设序号和第二预设序号的值后,还记录第一预设序号和第二预设序号的值,以便在解密待加密文件对应的密文时可以根据第一预设序号和第二预设序号来生成解密的密钥。例如,假设按键信息为233234234,MAC地址为0050BACE070C,假设第一预设序号为3,第二预设序号为4,则将按键信息添加在MAC地址包括的第3个字符“5”和第4个字符“0”之间,得到的合并字符串为0052332342340BACE070C。本发明实施例中,终端可以选择通过上述第一至第三种方式中的任意一种方式来将MAC地址和按键信息融合,得到合并字符串。终端还需记录所使用的融合方式,以便在解密待加密文件对应的密文时可以通过同样的融合方式来生成解密的密钥。本发明实施例中得到合并字符串后,通过哈希运算将合并字符串变换为MD5字符串,该MD5字符串即为对待加密文件进行加密的密钥。后续根据该MD5字符串对待加密文件进行加密。由于对待加密文件进行加密的过程属于写文件的过程,因此本发明实施例中在对待加密文件进行加密之前,还需要先获取最后得到的待加密文件对应的密文的存储地址。终端提示用户选取密文的存储地址,此时同样使用安卓系统的文件浏览器来向用户显示文件选择界面,用户从该文件选择界面中选择一个文件夹。终端检测到用户选择一个文件夹时,获取该文件夹的绝对地址,将该文件夹的绝对地址确定为用户选择的密文的存储地址。由于可能存在用户选择的文件夹的存储空间不足以存储待加密文件的密文的情况,所以本发明实施例还需判断上述密文的存储地址对应的存储空间是否足够。具体可以通过执行如下判断代码来判断存储空间十分足够,具体代码示例如下:StatFsdataFs=newStatFs(Path);//获取用户选择的密文的存储地址的空间信息;longsizes=(long)dataFs.getFreeBlocks()*(long)dataFs.getBlockSize();//获取剩余空间的大小。上述代码是判断存储地址下剩余的空间大小,比较sizes的返回值和待加密文件的大小,如果sizes的返回值大于或等于待加密文件的大小,则表明用户选择的文件夹的空间大小足够,可以将待加密文件对应的密文写入该文件夹。如果sizes的返回值小于待加密文件的大小,则表明用户选择的文件夹空间不够,后续提示用户重新选择一个文件夹。通过上述方式选择出存放待加密文件对应的密文之后,即可开始通过由合并字符串变换得到的MD5字符串,进行对待加密文件的加密过程。本发明实施例采用java(脚本)中的DES(DataEncryptionStandard,数据加密标准)来进行文件加密,具体代码如下:上述代码中,首先使用Cipher创建一个加密类,并将this.Key传入,而this.key则是上述根据蓝牙设备的MAC地址和用户点击蓝牙设备的按键所产生的按键信息最终得到的密钥,该密钥写入后,将开始读取待加密文件的文件流,并将文件流加入到加密流CipherInputStream中进行加密,并将加密后的密文写入到保存的文件夹中。在本发明实施例中,主要针对于蓝牙设备等密钥设备,在加密时,用户可以点击密钥设备上的按键,来实现复杂的加密功能。当用户开始加密时,终端上安装的用于加密文件的APP会等待用户点击密钥设备上的按键来实现加密。当用户点击密钥设备上的按键时,终端就会监听到该按键的按键编码,用户每点击一次,终端就会记录一次,因此,用户点击不同的按键,以及点击不同按键的不同顺序,都会对最后的加密结果产生影响。用户点击按键的种类越多,点击次数越多,则最终生成的密钥的复杂度越高,加密文件的安全性越高。在本发明实施例中,获取用户选择的待加密文件;通过近场通信连接获取用户指定的密钥设备的硬件MAC地址;获取用户点击该密钥设备的按键所产生的按键信息;根据MAC地址和按键信息对待加密文件进行加密。本发明通过密钥设备的MAC地址及用户点击密钥设备的按键产生的按键信息来对文件加密。密钥设备的MAC地址是唯一标识该密钥设备的字符串,其中的字符组成非常随机且无规律可循,加上用户点击密钥设备的按键产生的按键信息,使得本发明进行文件加密的密钥复杂度很高,很难被破解,大大提高了文件加密的安全性,且与密钥设备建立连接后用户只需记住简单的点击按键的操作即可打开加密后的文件。实施例2参见图2,本发明实施例提供了一种文件解密方法,该方法用于对上述实施例所提供的文件加密方法得到的密文进行解密。该方法具体包括以下步骤:步骤201:获取用户选择的待解密密文。本发明实施例的执行主体为手机或PAD等终端,终端上安装有用于加密文件的APP(Application,应用程序)。当用户需要通过终端解密文件时,需要先选取需要解密的待解密密文。本发明实施例中获取用户选择的待解密密文的方式与实施例1中的步骤101获取待加密文件的方式相同,在此不再赘述。通过本步骤的操作获取到待解密密文后,通过如下步骤202-204的操作来对待解密密文进行解密,得到待解密密文对应的明文。步骤202:通过近场通信连接获取用户指定的密钥设备的MAC地址。上述密钥设备可以为用户随身使用的运动手环或蓝牙耳机等设备。上述近场通信连接可以为蓝牙连接、红外连接或者NFC(NearFieldCommunication,近距离无线通讯技术)连接等。在解密过程中,终端从内存中获取记录的加密过程中使用的密钥设备的设备标识。然后获取密钥设备适配器,查看密钥设备适配器中是否包含上述设备标识。如果不包含,则提示用户启动该设备标识对应的密钥设备,并建立与该密钥设备之间的近场通信连接。如果包含,则通过监听器监听终端当前是否与该密钥设备建立了近场通信连接,若监听器返回的状态为服务断开状态,则表明终端当前没有与该密钥设备建立近场通信连接,指示用户启动该密钥设备,并建立终端与该密钥设备之间的近场通信连接。若监听器返回的状态为服务连接状态,则表明终端当前建立了与该密钥设备之间的近场通信连接。通过上述方式确保建立与该密钥设备之间的近场通信连接后,通过该近场通信连接获取该密钥设备的MAC地址。步骤203:获取用户点击密钥设备的按键所产生的按键信息。在本发明实施例中,若待解密密文在之前加密过程中通过密钥设备的按键进行加强加密验证的话,终端将会提示用户操作密钥设备的按键来进行解密。终端在预设时长内接收密钥设备传输的每个按键指令;分别获取每个按键指令对应的按键编码;按照预设顺序将每个按键指令对应的按键编码组成按键信息。本步骤获取按键信息的具体细节与实施例1中步骤103的操作相同,在此不再赘述。步骤204:根据MAC地址和按键信息,对待解密密文进行解密。本发明实施例中,获取到密钥设备的MAC地址,及获取到用户点击密钥设备的按键所产生的按键信息后,将MAC地址和按键信息融合,得到合并字符串;通过哈希运算将合并字符串变换为MD5字符串;根据MD5字符串对待解密密文进行解密。上述将MAC地址和按键信息融合的具体细节与实施例1中步骤104中的融合操作相同,在此不再赘述。在本发明实施例中,获取用户选择的待解密密文;通过近场通信连接获取用户指定的密钥设备的MAC地址;获取用户点击密钥设备的按键所产生的按键信息;根据MAC地址和按键信息,对待解密密文进行解密。本发明中待解密密文是通过密钥设备的MAC地址及用户点击密钥设备的按键产生的按键信息来加密得到的。在解密时同样根据MAC地址和按键信息来解密。密钥设备的MAC地址是唯一标识该密钥设备的字符串,其中的字符组成非常随机且无规律可循,加上用户点击密钥设备的按键产生的按键信息,使得本发明进行文件加密的密钥复杂度很高,很难被破解,大大提高了文件加密的安全性,且与密钥设备建立连接后用户只需记住简单的点击按键的操作即可打开加密后的文件。实施例3参见图3,本发明实施例提供了一种文件加密装置,该装置用于执行上述实施例1提供的文件加密方法,该装置包括:获取模块301,用于获取用户选择的待加密文件;通过近场通信连接获取用户指定的密钥设备的MAC地址;获取用户点击密钥设备的按键所产生的按键信息;加密模块302,用于根据MAC地址和按键信息对待加密文件进行加密。上述加密模块302,包括:融合单元,用于将MAC地址和按键信息融合,得到合并字符串;变换单元,用于通过哈希运算将合并字符串变换为消息摘要算法MD5字符串;加密单元,用于根据MD5字符串对待加密文件进行加密。上述融合单元,用于将按键信息添加在MAC地址包括的所有字符之前,得到合并字符串;或者,用于将按键信息添加在MAC地址包括的所有字符之后,得到合并字符串;或者,用于从MAC地址中定位出序号分别为第一预设序号和第二预设序号的两个字符,将按键信息插入定位出的两个字符之间,得到合并字符串,定位出的两个字符为相邻的两个字符。在本发明实施例中,该装置还包括:检测模块,用于检测当前是否存在已建立近场通信连接的密钥设备;如果是,则指示用户从已建立近场通信连接的密钥设备中选择一个密钥设备;如果否,则指示用户启动一个密钥设备,建立与用户启动的密钥设备之间的近场通信连接。在本发明实施例中,获取模块301包括:接收单元,用于在预设时长内接收密钥设备传输的每个按键指令;获取单元,用于分别获取每个按键指令对应的按键编码;组成单元,用于按照预设顺序将每个按键指令对应的按键编码组成按键信息。在本发明实施例中,获取用户选择的待加密文件;通过近场通信连接获取用户指定的密钥设备的硬件MAC地址;获取用户点击该密钥设备的按键所产生的按键信息;根据MAC地址和按键信息对待加密文件进行加密。本发明通过密钥设备的MAC地址及用户点击密钥设备的按键产生的按键信息来对文件加密。密钥设备的MAC地址是唯一标识该密钥设备的字符串,其中的字符组成非常随机且无规律可循,加上用户点击密钥设备的按键产生的按键信息,使得本发明进行文件加密的密钥复杂度很高,很难被破解,大大提高了文件加密的安全性,且与密钥设备建立连接后用户只需记住简单的点击按键的操作即可打开加密后的文件。实施例4参见图4,本发明实施例提供了一种文件解密装置,该装置用于执行上述实施例2所提供的文件解密方法,该装置包括:获取模块401,用于获取用户选择的待解密密文;通过近场通信连接获取用户指定的密钥设备的硬件MAC地址;获取用户点击密钥设备的按键所产生的按键信息;解密模块402,用于根据MAC地址和按键信息,对待解密密文进行解密。上述解密模块402,包括:融合单元,用于将MAC地址和按键信息融合,得到合并字符串;变换单元,用于通过哈希运算将合并字符串变换为MD5字符串;解密单元,用于根据MD5字符串对待解密密文进行解密。在本发明实施例中,获取模块401包括:接收单元在预设时长内接收密钥设备传输的每个按键指令;获取单元,用于分别获取每个按键指令对应的按键编码;组成单元,用于按照预设顺序将每个按键指令对应的按键编码组成按键信息。在本发明实施例中,获取用户选择的待解密密文;通过近场通信连接获取用户指定的密钥设备的MAC地址;获取用户点击密钥设备的按键所产生的按键信息;根据MAC地址和按键信息,对待解密密文进行解密。本发明中待解密密文是通过密钥设备的MAC地址及用户点击密钥设备的按键产生的按键信息来加密得到的。在解密时同样根据MAC地址和按键信息来解密。密钥设备的MAC地址是唯一标识该密钥设备的字符串,其中的字符组成非常随机且无规律可循,加上用户点击密钥设备的按键产生的按键信息,使得本发明进行文件加密的密钥复杂度很高,很难被破解,大大提高了文件加密的安全性,且与密钥设备建立连接后用户只需记住简单的点击按键的操作即可打开加密后的文件。本发明实施例所提供的文件加密装置及文件解密装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。在本发明所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1