一种加密存储方法
技术领域
本发明涉及加密技术领域,尤其是涉及一种加密存储方法。
背景技术
近年来,随着互联网技术的高速发展,人们对数据存储的需求越来越高,各大互联网公司都推出了自己的网盘产品,例如百度网盘、金山网盘等,在数据存储量增加的同时,人们对数据存储安全技术也提出了更高的要求,由于网盘的数据都是托管于互联网运行商,一旦运营商的数据失窃,用户的损失是巨大的,所以如何保护用户的私密数据安全成为越来越热门的话题。
基于上述原因,本发明旨在提供一种加密存储方法,该方法可以有效的保护用户隐私数据的安全,尤其是储存于服务器端的用户数据的安全,即使服务端数据发生失窃,也能有效的保护用户数据安全。
发明内容
为实现本发明之目的,采用以下技术方案予以实现:
一种加密存储方法,包括用户注册,用户数据上传和用户数据读取,其中:用户注册包括用户通过客户端向服务器发送注册请求,服务器保存用户信息并为每个用户生成一对公私钥对,为每一个用户文件生成一个文件密钥,并使用文件密钥对用户文件进行加密并进行保存,将文件密钥用公钥进行加密生成加密后的文件密钥并进行保存,服务器将私钥发送给客户端,客户端使用登录口令对所述文件密钥进行加密生成加密后的私钥,并将加密后的私钥发送到服务器,服务器保存该加密后的私钥。
所述的加密存储方法,其中:用户通过客户端向网盘服务器发送注册请求,发送的注册请求信息中包括用户信息,用户信息包括用户名、登录口令;接收到注册请求信息后,服务器对用户名进行查重,如果用户名在服务器中已经存在,则向客户端发出用户名重复的提示,并中止后续的注册服务,直到客户端发来的注册请求信息中的用户名未在服务器存在为止。
所述的加密存储方法,其中:如果用户名在服务器中不存在,则服务器保存用户信息并为每个用户自动生成一对公私钥对,同时还为用户文件生成文件密钥。
所述的加密存储方法,其中:服务器在生成公私钥对时,首先判定生成公私钥对是否生成成功,如果生成失败,则会重新生成,如果成功,则为用户生成文件密钥;服务器在生成文件密钥时,首先判定生成文件密钥是否生成成功,如果生成失败,则重新生成文件密钥,直到文件密钥生成成功。
所述的加密存储方法,其中:用户数据上传包括用户上传用户文件时,服务器为上传的用户文件生成一个新的文件密钥,服务器在生成该文件密钥时,服务端使用该文件密钥对上传文件进行加密,生成用户加密文件并进行保存,服务器使用公钥对上传文件的文件密钥进行加密,生成加密后的文件密钥并进行保存。
所述的加密存储方法,其中:服务器在生成新的文件密钥时,首先判定该文件密钥是否创建成功,若创建失败,则提示错误信息,并重新创建,直到创建成功。
所述的加密存储方法,其中:用户读取服务器中的用户加密文件时,用户输入登录口令,服务端接收到用户登录口令,用该登录口令将加密后的私钥解密生成得到私钥,服务器使用该私钥对文件的文件密钥加密文件进行解密得到文件密钥,服务器使用文件密钥对文件的加密文件进行解密得到解密的文件,并将解密的文件发送给客户端。
一种加密存储方法,包括用户注册,用户数据上传和用户数据读取,其中:用户注册包括用户通过客户端向服务器发送注册请求,服务器保存用户信息并为每个用户生成一对公私钥对,为每一个用户文件生成一个文件密钥,并使用文件密钥对用户文件进行加密并进行保存,将文件密钥用公钥进行加密生成加密后的文件密钥并进行保存,服务器将私钥发送给客户端,客户端使用加密口令对所述文件密钥进行加密生成加密后的私钥,并将加密后的私钥发送到服务器,服务器保存该加密后的私钥。
所述的加密存储方法,其中:用户通过客户端向网盘服务器发送注册请求,发送的注册请求信息中包括用户信息,用户信息包括用户名、登录口令、加密口令;接收到注册请求信息后,服务器对用户名进行查重,如果用户名在服务器中已经存在,则向客户端发出用户名重复的提示,并中止后续的注册服务,直到客户端发来的注册请求信息中的用户名未在服务器存在为止。
所述的加密存储方法,其中:如果用户名在服务器中不存在,则服务器判断加密口令与登录口令是否相同,如果相同则中止后续的注册服务,并向客户端发出更改加密口令与登录口令的提示信息,直到接收到的加密口令与登录口令不同为止;如果加密口令与登录口令不同,则服务器保存用户信息并为每个用户自动生成一对公私钥对,同时还为用户文件生成文件密钥。
所述的加密存储方法,其中:服务器在生成公私钥对时,首先判定生成公私钥对是否生成成功,如果生成失败,则重新生成公私钥对,如果成功,则为用户生成文件密钥;服务器在生成文件密钥时,首先判定生成文件密钥是否生成成功,如果生成失败,会重新生成,直到文件密钥生成成功。
所述的加密存储方法,其中:用户数据上传包括用户上传文件时,服务器为上传的文件生成一个新的文件密钥,服务器在生成该文件密钥时,服务端使用该文件密钥对上传文件进行加密,生成用户加密文件并进行保存,服务器使用公钥对上传文件的文件密钥进行加密,生成加密后的文件密钥并进行保存。
所述的加密存储方法,其中:服务器在生成新的文件密钥时,首先判定该文件密钥是否创建成功,若创建失败,则提示错误信息,并重新创建新的文件密钥,直到创建成功。
所述的加密存储方法,其中:用户读取服务器中的用户加密文件时,用户输入加密口令,服务端接收到用户加密口令,用该加密口令将加密后的私钥解密生成得到私钥,服务器使用该私钥对文件的文件密钥加密文件进行解密得到文件密钥,服务器使用文件密钥对文件的加密文件进行解密得到解密的文件,并将解密的文件发送给客户端。
所述的加密存储方法,其中:服务器保存除加密口令之外的用户信息。
附图说明
图1为本发明加密存储方法时序图;
图2为用户注册步骤示意图;
图3为用户数据上传示意图;
图4为用户数据读取示意图。
具体实施方式
下面结合附图对本发明实施方式进行详细描述。
如图1所示,本发明的加密存储方法运行于加密存储***,其中加密存储***包括(网盘)服务器和客户机,服务器端和客户端通过通信网连接,实现互相通信。
本发明的加密存储方法涉及到服务器端和客户端交互操作,如下图1所示。所述加密存储方法包括:1.用户注册;2.用户数据上传;3.用户数据读取。具体如下:
1.用户注册,用户通过客户端向网盘服务器发送注册请求,发送的注册请求信息中包括用户名、登录口令等的用户信息,接收到注册请求信息后,服务器会对用户名进行查重,如果用户名在服务器中已经存在,则向客户端发出用户名重复的提示,并中止后续的注册服务,直到客户端发来的注册请求信息中的用户名未在服务器存在为止;如果用户名在服务器中不存在,则服务器保存用户信息并为每个用户自动生成一对公私钥对(Pub,Pek),同时还为每个用户文件生成对称密钥Fkn,并使用对称密钥Fkn对用户文件进行加密并进行保存,将对称密钥Fkn用公钥Pub进行加密保护生成加密后的对称密钥Fcn并进行保存,服务器将非对称密钥的私钥Pek发送给客户端,客户端使用登录口令对Pek进行加密生成加密后的私钥C,并将加密后的私钥C发送到服务器端,服务器保存该加密后的私钥C,此时用户注册完成。
如图2所示,如上所述在注册过程中,服务器会为每个用户自动生成一对公私钥对(Pub,Pek),服务器在生成公私钥对(Pub,Pek)时,首先判定生成公私钥对是否生成成功,如果生成失败,则会重新生成,如果成功,则为用户的用户信息生成对称密钥Fkn,服务器在生成对称密钥Fkn时,首先判定生成对称密钥Fkn是否生成成功,如果生成失败,会重新生成Fkn,直到Fkn生成成功。
2.用户数据上传:如图3所示,用户上传文件时,服务器为上传的文件生成一个新的对称密钥Fkm,服务器在生成对称密钥Fkm时,首先判定生成对称密钥Fkm是否生成成功,若创建失败,则提示错误信息,并重新创建,对称密钥创建完成后,服务端使用对称密钥Fkm对上传文件Fm进行加密,生成用户加密文件Fcm并进行保存,服务器使用公钥Pub对上传文件的加密密钥Fkm进行加密,生成加密后的对称密钥Fkcm并进行保存,最后,服务器端返回客户端文件上传成功消息,文件上传成功。
3.用户数据读取
如图4所示,用户读取(网盘)服务器中的用户加密文件Fm时,用户输入登录口令,服务端接收到用户登录口令,用该登录口令将加密后的私钥C解密生成得到私钥Pek,服务器使用Pek对文件Fm的对称密钥加密文件Fkcm进行解密得到对称密钥Fkm,服务器使用对称密钥Fkm对文件的加密文件Fcm进行解密得到解密的文件Fm,并将解密的Fm发送给客户端。
以上是本发明的实施方式1,通过该方式可以在服务器端用户数据被窃取后,由于无法对用户加密数据进行解密而避免用户隐私泄露问题的发生。
由于一般用户在应用互联网时,在多个网站注册的用户名和登录口令经常相同,因此如果用户在其他场合的用户名和登录口令泄露,则有可能导致上述实施方式1中的用户加密数据被窃取后出现数据被解密的情况,为此,本发明提供了实施方式2,实施方式2的加密存储方法包括:
1.用户注册,用户通过客户端向网盘服务器发送注册请求,发送的注册请求信息中包括用户名、登录口令、加密口令等的用户信息,所述加密口令与登录口令不同,接收到注册请求信息后,服务器会对用户名进行查重,如果用户名在服务器中已经存在,则向客户端发出用户名重复的提示,并中止后续的注册服务,直到客户端发来的注册请求信息中的用户名未在服务器存在为止;如果用户名在服务器中不存在,则服务器判断加密口令与登录口令是否相同,如果相同则中止后续的注册服务,并向客户端发出更改加密口令与登录口令的提示信息,直到接收到的加密口令与登录口令不同为止;如果加密口令与登录口令不同,服务器保存用户信息并为每个用户自动生成一对公私钥对(Pub,Pek),同时还为每个用户文件生成对称密钥Fkn,并使用该对称密钥Fkn对用户文件进行加密并进行保存,将对称密钥Fkn用公钥Pub进行加密保护生成加密后的对称密钥Fcn并进行保存,服务器将非对称密钥的私钥Pek发送给客户端,客户端使用与登录口令不同的加密口令对私钥Pek进行加密生成加密后的私钥C,并将加密后的私钥C发送到服务器端,服务器保存该加密后的私钥C,此时用户注册完成。
如图2所示,如上所述在注册过程中,服务器会为每个用户自动生成一对公私钥对(Pub,Pek),服务器在生成公私钥对(Pub,Pek)时,首先判定生成公私钥对是否生成成功,如果生成失败,则会重新生成,如果成功,则为用户的用户信息生成对称密钥Fkn,服务器在生成对称密钥Fkn时,首先判定生成对称密钥Fkn是否生成成功,如果生成失败,会重新生成Fkn,直到Fkn生成成功。
2.用户数据上传:如图3所示,用户上传文件时,先通过用户名和登录口令登录服务器,然后上传用户文件,服务器为上传的文件生成一个新的对称密钥Fkm,服务器在生成对称密钥Fkm时,首先判定生成对称密钥Fkm是否生成成功,若创建失败,则提示错误信息,并重新创建,对称密钥创建完成后,服务端使用对称密钥Fkm对上传文件Fm进行加密,生成用户加密文件Fcm并进行保存,服务器使用公钥Pub对上传文件的加密密钥Fkm进行加密,生成加密后的对称密钥Fkcm并进行保存,最后,服务器端返回客户端消息,文件上传成功。
3.用户数据读取
如图4所示,用户读取(网盘)服务器中的用户加密文件Fm时,先通过用户名和登录口令登录服务器,向服务器发出读取用户数据的请求,服务器提示用户输入加密口令,用户输入加密口令,服务端接收到用户加密口令,用该加密口令将加密后的私钥C解密生成得到私钥Pek,服务器使用Pek对文件Fm的密钥加密文件Fkcm进行解密得到密钥Fkm,服务器使用Fkm对文件的加密文件Fcm进行解密得到解密的文件Fm,并将解密的Fm发送给客户端。
进一步的,在用户注册中,服务器仅保存加密口令之外的用户信息,通过这种方式可以彻底将用户登录口令和用户加密口令分开,服务器端不存储加密口令,可以最大限度的避免文件流出导致的用户隐私泄露。
通过实施方式2,能够有效避免黑客通过撞库的方式窃取用户口令并通过该口令解密用户加密数据的情况的发生。