一种信息系统用户密码的生成方法技术方案

技术编号:6793942 阅读:190 留言:0更新日期:2012-04-11 18:40
一种信息系统用户密码的生成方法,本发明专利技术属于计算机编码技术领域,尤其是一种应用于计算机信息系统管理的密码生成方法。本发明专利技术的方法是将输入的信息经过几次散列计算后得到相应的密码。本发明专利技术的算法有足够的安全性、且密码不需存储到数据库,节省服务器和数据库资源,实现方式灵活、简单。

【技术实现步骤摘要】

本专利技术 属于计算机编码
,尤其是一种应用于计算机信息系统管理的密码生成方法。
技术介绍
计算机信息系统,包括企业中应用的办公、邮件及因特网的论坛、购物网站等通常都需要为注册用户分配登录名和密码。系统可以让用户在注册时输入密码,也可为用户分配一个初始密码,待其首次登录后作修改,也有些系统会给用户分配不可更改的密码,如 考试系统,用户只能以给定的密码登录,不允许自己作修改。通常情况,为了方便管理,信息系统给所有用户分配完全一样的初始密码,或采用户名与密码完全一致的方式。如,用户ZS的用户名和初始密码均为ZS。这种密码全部一样,或者同用户名的做法存在诸多安全隐患,用户信息的安全无从保证,因此从安全的角度考虑,不同用户的登录名和密码之间不应容易推测得知。有一种验证用户身份的方式是由系统产生一个验证密码,该密码通过手机、电子邮件等方式向用户发送,由用户输入正确的验证码来验证其身份。如因特网上购物的支付方式,用户ZS在某购物系统确认支付某笔款项时,系统向其手机发送一个六位数字的密码,ZS在限定时间内正确输入这六位数字,系统便可确认其支付。上述场合可用随机密码或者数字证书解决身份验证中的安全性问题。由随机算法产生验证性密码,是独立、随机的,没有明显规律的,他人无法直接从登录名或相关信息推测出,但这种方式由于密码与登录用户名是相互独立的,因此必须将密码和登录用户名同时进行存储,验证时将其同时取出。这种方式虽然实现方式简单,但在有大量验证工作需要进行时,由于存在计算过程之外的大量频繁的数据库操作,因此显得比较繁琐。数字证书是当前身份验证方式中最有效、最安全的一种,但由于证书的申请、维护成本较高,因此只适用于安全性要求非常高的场合。采用散列算法(Hash,也称哈希算法)来生成密码,可以让登录名与密码产生关联, 且这种关联从外部来看是“随机”的。散列算法可以针对各种“信息源”产生不同的“信息摘要”(Message Digest),而无法从摘要直接反推计算出信息源的内容。如用户名“zs”作为信息源,通过MD5算法产生一个128bit的信息摘要是“f6706d5db3ad094cfabd8fb5326f leec”,而信息源如果变成“ζ s”则是“76314d66d61e545ca8e38fcllcc85208”,虽然信息源只有微小变化,字符中间多了一个空格,信息摘要的内容发生了根本的变化,这种变化是看似随机的,故此也称伪随机算法。但只要信息源内容不变,每次生成的信息摘要就不会有变化。因此,可将信息源计算出的信息摘要的内容作为密码验证的基础。如将可将信息摘要直接作为密码,当输入的密码与系统记录的信息源的信息摘要一致时,便可判定密码无误。 也可取出信息摘要的部分内容,作为用户的初始密码,如取信息摘要的前四个字符做密码, 那么“zs”的密码就是“f670”。或者也可将用户名称与产生时间合并为一个字符串,随登录用户名及时间的不同而产生的不同信息摘要作为密码验证的基础。但是,如果直接采用标准的散列算法,则一个用户名在一种计算方式下只能产生一个密码,然而在现实中同一用户在不同的系统和场合需要不同的密码。同时,由于散列算法是公开标准,一旦计算方式及所采用的算法被公开,密码也很容易被他人推算出。例如 计算方式是选取MD5算法所产生信息摘要的前四个字符作为密码,那么只要知道用户名是 zs就可以推算出密码是f670。要避免这个问题,可以采用加密的算法,将相同的原文通过不同的密钥加密形成不同的密文。散列算法本身可看作没有密钥的加密算法,引入密钥使得相同的原文即登录名可以在不同的密钥下产生不同的信息摘要,从而形成不同的用户密码。采用这样的处理方式后,就算公开计算过程和所采用的算法,只要不公开密钥,他人也不可能推知用户密码的内容,这样就能保证用户信息的安全和保密性。本专利技术将使用的散列算法为SHA2算法族,SHA2由美国国家标准与技术协会 (NIST)发布,已经成为美国联邦信息处理标准(名称“Secure Hash Standard(SHS)编号 FIPS PUB 180-3)。这一标准包括了四个算法SHA-224、SHA-256、SHA-384 和 SHA-512,后面的数字表示信息摘要的长度,从224bit到512bit。
技术实现思路
本专利技术所要解决的就是目前的信息系统密码采用随机验证密码、数字证书的方式存在的不足,提出了一种将散列算法进行组合,并使用密钥生成信息系统用户初始密码、不可更改密码及验证型密码的方法。本专利技术的,其特征在于该方法的具体步骤为(1)首先进行输入计算,将输入的信息形成信息摘要,包括以下步骤①将接收的用户名Sl和密码S2通过SHA2算法中的任意一种生成两个信息摘要DGl 禾口 DG2 ;②将DGl与DG2从数组第一单元开始到最后一个单元,按字节把DGl与DG2相对应位置的字节进行异或运算,得到信息摘要DG3 ;③取DG3第一字节内容与数字3进行求余运算,结果为Dl;(2)其次进行散列变换,包括以下步骤①根据Dl的值动态选择相应的算法,使用被选择的算法对DG3进行散列运算,得结果 DG4 ;其中,Dl有三个动态值0、1和2,该三个值对应设定不重复的任意一个SHA2算法;②使用SHA2算法中的任意一种对DG4进行运算得信息摘要DG5;(3)最后密码生成,以DG5的内容为基础,根据用户需要的密码类型和长度,直接或通过密码表生成不超过64个字符的密码文本。其中,直接生成的密码包括纯数字密码、十六进制字符密码。纯数字密码生成的具体步骤为(1)根据用户需要确定密码位数;(2)根据密码位数取DG5相应字节的内容,并将该字节内容分别换算为10进制的数字;(3)将步骤(2)所得的数字与100求余;(4)将步骤(3)所得的求余数字组合即得到相应的纯数字密码。十六进制字符密码生成的具体步骤为(1)根据用户需要确定密码位数;(2)取DG5相应字节的内容作密码位数即得十六进制字符密码。所述的纯数字密码和十六进制字符密码生成奇数位密码时,则生成n+1位偶数密码后去除第一位获得需要的密码。通过密码表生成密码文本的具体步骤为(1)根据用户需要确定密码位数;(2)设定数字与数字和符号对应的密码表;(3)取DG5相应字节的内容换算成十进制,依次与36求余得数字;(4)步骤3得的数字对应密码表所列对应的数字和符号得出最后的密码。本专利技术具有以下的特点1、符合密码学柯克霍夫原则不知道密钥的情况下,即使公开计算过程,也无法推知密码。2、使用了三重SHA2算法,有足够的安全性。3、密码的生成、验证、找回均使用同一过程,且密码不需存储到数据库,节省服务器和数据库资源。4、可以作为独立的程序也可以是软件模块,实现方式灵活、简单。 附图说明图1是本专利技术的逻辑框图。 具体实施例方式实施例1 张桑是A公司新进员工,A公司信息中心需要为张桑分配办公,财务两个系统的用户账号和密码。为了方便员工,公司内所有系统针对一个员工可以使用统一的用户名登录,但是各个系统的密码并不一样,分配给张桑的初始密码也不相同。目前,已经为张桑分配用户名“zs”,系统需要为张三分配初始密码。 分配过程如下(1)首先,系统将用户名zs以及办公系统对应的密码123通过 SHA224算法生成两个信息本文档来自技高网
...

【技术保护点】
1.一种信息系统用户密码的生成方法,其特征在于该方法的具体步骤为:(1)首先进行输入计算,将输入的信息形成信息摘要,包括以下步骤:①将接收的用户名S1和密码S2通过SHA2算法中的任意一种生成两个信息摘要DG1和DG2;②将DG1与DG2从数组第一单元开始到最后一个单元,按字节把DG1与DG2相对应位置的字节进行异或运算,得到信息摘要DG3;③取DG3第一字节内容与数字3进行求余运算,结果为D1;(2)其次进行散列变换,包括以下步骤:①根据D1的值动态选择相应的算法,使用被选择的算法对DG3进行散列运算,得结果DG4;其中,D1有三个动态值0、1和2,该三个值对应设定不重复的任意一个SHA2算法;②使用SHA2算法中的任意一种对DG4进行运算得信息摘要DG5;(3)最后密码生成,以DG5的内容为基础,根据用户需要的密码类型和长度,直接或通过密码表生成不超过64个字符的密码文本。

【技术特征摘要】

【专利技术属性】
技术研发人员:沈超
申请(专利权)人:昆明有色冶金设计研究院股份公司
类型:发明
国别省市:53

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1