密码加密算法的升级方法、装置、计算设备和介质与流程

文档序号:24979509发布日期:2021-05-07 22:54阅读:173来源:国知局
密码加密算法的升级方法、装置、计算设备和介质与流程

本公开涉及信息安全领域,更具体地,涉及一种密码加密算法的升级方法、装置、一种计算设备以及一种计算机存储介质。



背景技术:

在信息高科技强有力的支撑下,互联网中的信息传播越来越频繁,将人类的文化带入了一个全新的时代。在这样的时代下,互联网已经成为了人们日常生活中不可或缺的一部分。在互联网的应用场景中,用户通过手机、电脑、平板等终端设备使用各类网络平台、软件、系统时,需要输入各种不同的账户密码。

而这些平台、软件、系统的后台需要对用户输入的密码进行加密存储。简单的加密方案较容易被破译。例如对于经过单次md5加密用户明文密码,可以通过彩虹表进行大概率的破解。随着人们对安全越来越重视,各平台、软件、系统都在陆陆续续对自己已有的系统进行安全升级,将相对简单的加密方案升级为相对复杂但安全性更高的加密方案。

另外,相关技术将预先存储在库中的用户密码的明文通过rsa这类非对称加密处理后再存储入库,而rsa等非对称加密算法中的公钥、私钥也也会相应存储在数据库表中。若用户在各类系统中的密码与自身的银行卡、手机支付等一系列关键账号近似,那么一但rsa这类非对称加密算法的私钥连同用户密码等数据一起遗失,则很有可能被不法分子通过一起遗失的私钥信息而获译这些密码值。因此有必要对密码加密算法进行升级。

因此,对平台、软件、系统的开发者而言,如何对用户密码加密存储方案进行升级是一个亟需解决的问题。



技术实现要素:

本公开的一个方面提供了一种密码加密算法的升级方法,包括:获取用户输入的第一密码;确定与所述用户对应的预设加密版本标识;在所述预设加密版本标识与当前加密版本标识不匹配的情况下,根据与所述预设加密版本标识对应的加密算法,对所述第一密码进行加密,以得到第二密码;在所述第二密码与所述用户的预设密码匹配的情况下,根据与所述当前加密版本标识对应的加密算法,对所述第一密码进行加密,以得到第三密码;以及配置所述第三密码作为新的预设密码,并配置当前加密版本标识作为与所述用户对应的预设加密版本标识,以完成密码加密算法的升级。

可选地,所述获取用户输入的第一密码包括:获取来自用户终端的用户请求;以及解析所述用户请求,以获取所述第一密码。

可选地,所述确定与所述用户对应的预设加密版本标识包括:获取所述用户的用户标识;以及获取数据库中与所述用户标识对应的加密版本标识字段的值,作为所述预设加密版本标识。

可选地,所述方法还包括:获取与所述用户对应的密钥;以及在所述根据与所述当前加密版本标识对应的加密算法,对所述第一密码进行加密的过程中,根据所述密钥,对所述第一密码进行混淆。

可选地,所述配置所述第三密码作为新的预设密码,并配置当前加密版本标识作为与所述用户对应的预设加密版本标识,包括:将所述数据库中与所述用户标识对应的密码字段的值配置为所述第三密码,并将所述数据库中与所述用户标识对应的加密版本标识字段的值配置为所述当前加密版本标识。

可选地,所述方法还包括:在所述第二密码与所述用户的预设密码匹配的情况下,执行所述用户请求所对应的操作。

可选地,所述方法还包括:在所述预设加密版本标识与当前加密版本标识匹配的情况下,根据与所述当前加密版本标识对应的加密算法,对所述第一密码进行校验。

本公开的另一个方面提供了一种密码加密算法的升级装置,包括:获取模块,用于获取用户输入的第一密码;确定模块,用于确定与所述用户对应的预设加密版本标识;第一加密模块,用于在所述预设加密版本标识与当前加密版本标识不匹配的情况下,根据与所述预设加密版本标识对应的加密算法,对所述第一密码进行加密,以得到第二密码;第二加密模块,用于在所述第二密码与所述用户的预设密码匹配的情况下,根据与所述当前加密版本标识对应的加密算法,对所述第一密码进行加密,以得到第三密码;以及配置模块,用于配置所述第三密码作为新的预设密码,并配置当前加密版本标识作为与所述用户对应的预设加密版本标识,以完成密码加密算法的升级。

本公开的另一个方面提供了一种计算设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。

本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

根据本公开实施例的密码加密算法的升级方法,可以在不需要得知用户明文密码的基础上,对每一次新登录进来的用户进行无感知的密码加密算法升级,提高了存储密码的安全性。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本公开的实施例的密码加密算法的升级方法和密码加密算法的升级装置的应用场景;

图2示意性示出了根据本公开的实施例的密码加密算法的升级方法的流程图;

图3示意性示出了根据本公开另一实施例的密码加密算法的升级流程图;

图4示意性示出了根据本公开的实施例的密码加密算法的升级装置的框图;以及

图5示意性示出了根据本公开实施例的适于实现本公开实施例描述的方法的计算机系统的方框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。

本公开的实施例提供了一种密码加密算法的升级方法以及能够应用该方法的密码加密算法的升级装置。该方法包括获取用户输入的第一密码;确定与用户对应的预设加密版本标识;在预设加密版本标识与当前加密版本标识不匹配的情况下,根据与预设加密版本标识对应的加密算法,对第一密码进行加密,以得到第二密码;在第二密码与用户的预设密码匹配的情况下,根据与当前加密版本标识对应的加密算法,对第一密码进行加密,以得到第三密码;以及配置第三密码作为新的预设密码,并配置当前加密版本标识作为与用户对应的预设加密版本标识,以完成密码加密算法的升级。

需要说明的是,本公开实施例的密码加密算法的升级方法和装置可用于金融领域信息安全领域,也可用于除信息安全领域之外的任意领域,本公开对密码加密算法的升级方法和装置的应用领域不做限定。

图1示意性示出了根据本公开的实施例的密码加密算法的升级方法和密码加密算法的升级装置的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。

终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。

需要说明的是,本公开实施例所提供的密码加密算法的升级方法一般可以由服务器105执行。相应地,本公开实施例所提供的密码加密算法的升级装置一般可以设置于服务器105中。本公开实施例所提供的密码加密算法的升级方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的密码加密算法的升级装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

图2示意性示出了根据本公开的实施例的密码加密算法的升级方法的流程图。

如图2所示,该方法包括操作s201~s211。

在操作s201,获取用户输入的第一密码。

根据本公开的实施例,当用户想要执行例如登录等操作的过程中,会通过终端设备向服务器发送相应地请求。该请求中包含用户的标识和用户输入的密码等信息。其中,请求例如可以为http请求,用户的标识例如可以为用户账号或者用户名等。

根据本公开的实施例,服务器获取来自用户终端的请求后,可以解析该请求,以获取用户输入的密码,即第一密码。

在操作s202,确定与用户对应的预设加密版本标识。

根据本公开的实施例,加密版本标识可以用于表示密码加密算法的版本。加密版本标识例如可以包括至少一个数字、字母、符号或者数字、字母、符号之间的任意组合。示例性地,本实施例中,加密版本标识包括n个数字,n为正整数。

根据本公开的实施例,数据库中预先配置有用户标识与加密版本标识的对应关系。服务器可以通过解析用户的请求以获取该请求中包含的用户标识,然后在数据库中,查找与用户标识对应的加密版本标识字段,读取该加密版本标识字段的值作为预设加密版本标识。

在操作s203,判断预设加密版本标识与当前加密版本标识是否匹配,在预设加密版本标识与当前加密版本标识不匹配的情况下,执行操作s204。在预设加密版本标识与当前加密版本标识匹配的情况下,执行操作s208。

在操作s204,根据与预设加密版本标识对应的加密算法,对第一密码进行加密,以得到第二密码。

根据本公开的实施例,若预设加密版本标识所表示的加密版本低于当前加密版本标识所表示的加密版本,则确认预设加密版本标识与当前加密版本标识不匹配。若预设加密版本标识所表示的加密版本与当前加密版本标识所表示的加密版本一致,则确认预设加密版本标识与当前加密版本标识匹配。

在操作s205,判断第二密码与用户的预设密码是否匹配,在第二密码与用户的预设密码匹配的情况下,执行操作206,在第二密码与用户的预设密码不匹配的情况下,执行操作211。

根据本公开的实施例,若第二密码与用户的预设密码一致,则第二密码与用户的预设密码匹配,即密码校验成功。否则,第二密码与用户的预设密码不匹配。

在操作s206,根据与当前加密版本标识对应的加密算法,对第一密码进行加密,以得到第三密码。

根据本公开的另一实施例,加密过程中还可以获取与用户对应的密钥,密钥可以用于混淆用户的加密密码,不同用户的密钥可以不同。然后在根据与当前加密版本标识对应的加密算法对第一密码进行加密时,根据密钥对第一密码进行混淆,以得到第三密码,从而使不同用户输入的相同密码在加密后将会变成完全不同的字符存储在相应地数据库表中。可选地,可以将各用户的密钥与加密版本也建立对应关系,在根据加密版本升级加密算法的同时,也将密钥一同升级。

在操作s207,配置第三密码作为新的预设密码,并配置当前加密版本标识作为与用户对应的预设加密版本标识,以完成密码加密算法的升级。然后执行操作s210。

根据本公开的实施例,操作s207例如可以包括将数据库中与用户标识对应的密码字段的值配置为第三密码,并将数据库中与用户标识对应的加密版本标识字段的值配置为当前加密版本标识。

在操作s208,根据与当前加密版本标识对应的加密算法,根据与当前加密版本标识对应的加密算法,对第一密码进行加密,以得到第四密码。

在操作s209,判断第四密码与用户的预设密码是否匹配,在第四密码与用户的预设密码匹配的情况下,执行操作210,在第四密码与用户的预设密码不匹配的情况下,执行操作211。

在操作s210,执行后续操作。

根据本公开的实施例,在校验密码通过后,后续可以执行用户请求所对应的操作。例如,对于登录请求,则后续执行登录操作。

在操作s211,生成错误信息。

相关技术在服务器本身并不知道用户明文密码是什么的情况下,无法对用户存储在数据库表中的密码进行不可逆的加密升级。而根据本公开实施例的密码加密算法的升级方法,可以在不需要得知用户明文密码的基础上,对每一次新登录进来的用户进行无感知的密码加密算法升级,使存储密码的方式更安全。

下面参考图3,结合具体实施例对图2所示的密码加密算法的升级方法做进一步说明。

本领域技术人员可以理解,以下示例实施例仅用于理解本公开,本公开并不局限于此。

图3示意性示出了根据本公开另一实施例的密码加密算法的升级流程图。

如图3所示,示例性地,假设某网站在建站初期采用以下方式的存储密码:用户注册时输入密码,将密码以明文的方式传输至后台服务器,然后由后台服务器进行单次无混淆的md5加密,然后将加密后的密码存储至数据库表,例如对于明文密码为123,该明文密码的32位md5加密值为md5(123)=202cb962ac59075b964b07152d234b70。现在该网站要对存储密码的方式进行升级,具体步骤如下。

首先,在存储用户密码的库表中新增一个加密版本号的字段。示例性地,本实施例中,新增一个字段password_version,该字段代表用户密码的加密方案的版本号,默认值为0,代表系统初期的加密方案。即升级前系统内所有已注册过的用户的密码所对应的加密方案的版本号均为0。然后,定义当前新的加密方案的版本号,如示例中的新加密方案的版本号为1。

当已注册过的用户进行登录操作时,前端依然和此前一样传输用户的明文。此时先从数据库表中获取password_version所对应的加密版本号,如果版本号为老版本加密算法,则由后端程序接收到用户的明文密码后进行单次md5加密,并与数据库中存储该用户的密码进行匹配,判断两个密码是否相等。

单次md5加密后的用户密码与数据库中存储该用户的密码匹配密码不相等时,代表用户密码有误,因此生成错误信息。若单次md5加密后的用户密码与数据库中存储该用户的密码匹配密码相等时,则代表用户密码输入正确。于是将前端传过来的未处理的明文密码经由新版本的加密方案进行加密,然后存储至数据库表,同时将此用户所对应的password_version值调整为预定义的新的加密方案的版本号的值。

在完成了用户密码的加密版本升级操作之后,当该用户再次登录系统时,系统将会获取到该用户密码版本为最新版本,因此进行登录密码的匹配时将使用新版的加密方案进行密码匹配,从而实现了密码加密方案的升级,提高了存储密码的安全性。

图4示意性示出了根据本公开的实施例的密码加密算法的升级装置的框图。

如图4所示,密码加密算法的升级装置400包括获取模块410、确定模块420、第一加密模块430、第二加密模块440和配置模块450。该密码加密算法的升级装置400可以执行上面参考图2~图3描述的方法。

具体地,获取模块410,用于获取用户输入的第一密码。

确定模块420,用于确定与用户对应的预设加密版本标识。

第一加密模块430,用于在预设加密版本标识与当前加密版本标识不匹配的情况下,根据与预设加密版本标识对应的加密算法,对第一密码进行加密,以得到第二密码。

第二加密模块440,用于在第二密码与用户的预设密码匹配的情况下,根据与当前加密版本标识对应的加密算法,对第一密码进行加密,以得到第三密码。

配置模块450,用于配置第三密码作为新的预设密码,并配置当前加密版本标识作为与用户对应的预设加密版本标识,以完成密码加密算法的升级。

根据本公开实施例的密码加密算法的升级方法,可以在不需要得知用户明文密码的基础上,对每一次新登录进来的用户进行无感知的密码加密算法升级,提高了存储密码的安全性。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,获取模块410、确定模块420、第一加密模块430、第二加密模块440和配置模块450中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块410、确定模块420、第一加密模块430、第二加密模块440和配置模块450中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块410、确定模块420、第一加密模块430、第二加密模块440和配置模块450中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图5示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的方框图。图5示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图5所示,计算机系统500包括处理器510以及计算机可读存储介质520。该计算机系统500可以执行根据本公开实施例的方法。

具体地,处理器510例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器510还可以包括用于缓存用途的板载存储器。处理器510可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

计算机可读存储介质520,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;等等。

计算机可读存储介质520可以包括计算机程序521,该计算机程序521可以包括代码/计算机可执行指令,其在由处理器510执行时使得处理器510执行根据本公开实施例的方法或其任何变形。

计算机程序521可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序521中的代码可以包括一个或多个程序模块,例如包括521a、模块521b、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器510执行时,使得处理器510可以执行根据本公开实施例的方法或其任何变形。

根据本发明的实施例,获取模块410、确定模块420、第一加密模块430、第二加密模块440和配置模块450中的至少一个可以实现为参考图5描述的计算机程序模块,其在被处理器510执行时,可以实现上面描述的相应操作。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1