基于MD5加密算法系统安全登录研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MD5加密算法的系统安全登录研究
摘要:现在许多业务系统都是基于网络环境的,虽然满足了系统应用方便,共享性好的要求,但同时在系统安全上也带来了一些问题。如何消除安全隐患,增强登录模块的安全性,这是摆在系统建设者面前的一道课题。md5即message-digest algorithm 5(信息-摘要算法5),用于确保信息传输完整一致,是计算机广泛使用的
杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已
有md5实现。系统可以借助md5算法来强化安全措施,避免权限外用户浏览信息,从而提高业务系统的保密性。
关键词:md5;加密;安全登录;算法
中图分类号:tp393.08文献标识码:a文章编号:1007-9599 (2013) 06-0000-02
1系统登录安全问题概述
许多基于互联网的业务系统都提供有权限的资源服务,用户注册通过后,登录系统,才可以浏览信息参与系统的操作。在注册过程中填写的信息,涉及到用户的个人资料等重要信息,泄露后会造成极大的隐患。
在各类业务系统中,通常会在数据库中建立用户信息数据表。数据表中包含用户用户名、密码等信息。一条用户的信息称为一条数据库的记录。用户登录数据库时,会先通过网络程序访问数据库,然后在数据库中调取对应的用户名和密码。通过校验用户输入的用户名、密码,与数据库中的信息进行比对,如果数值相同,才能通
过校验,继而进入系统。如果校验结果不匹配,则退出登录程序。在软件设计领域,有多种校验用户信息的技术和算法,也可以同时采用多种安全技术,来强化系统的安全性。系统在校验密码来验证用户身份的真伪,虽然逻辑上可行性较高,但是难以避免口令猜解技术带来的隐患。此外,黑客也会在通信信道上探窥信息,所以,传输明文口令容易被黑客截获,从而导致灭顶之灾。由此,人们探索出口令加密的传输方式。
为确保各类业务系统的安全,对数据库等相关信息加密是非常重要的。即便有黑客进入了数据库,但不能解密,仍然无法得到数据库中的原信息。在加密时,要恰当选择需要加密的数据,以不超过系统最大负荷为前提。在各类业务系统登录模块中,md5算法加密得到了广泛应用。
2md5算法在系统安全登录中的应用
md5即message-digest algorithm 5(信息-摘要算法5),用于确保信息传输完整一致,是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有md5实现。考虑到各类基于网络的业务系统所面临的安全问题,可以借助md5算法来强化安全措施,避免权限外用户浏览信息,从而提高业务系统的保密性。md5算法在系统安全登录中的应用主要有:
2.1系统登录方面md5算法的应用。现在,大部分的业务系统都有在登录页面进行验证权限的算法模块,用户登录后输入用户名和密码,系统把输入的信息以明文方式传递到服务器端来校验,有的
数据库中也以明文形式存储用户名和密码,这都存在着极大的隐患。一旦黑客伺机进入数据库,则数据库中的用户信息就暴露无遗,从而给系统带来不可预见的损失。
为了强化系统的安全性,避免用户信息泄露,在数据库中要以md5算法加密后的形式来存储,不可用明文或可逆算法来加密。在登录过程中系统校验用户合法性时,要在登陆端导出登录信息的md5值,再与数据库中经过md5加密后的用户名、密码相比对,比对后如果等值,则用户为合法用户。这种校验方式的优势在于,假使黑客进入的用户信息数据库,窃取了md5加密后的用户密码,也不会有太大的危害,因为md5具有不可逆性,黑客仍然得不到实际的密码值。
2.2md5算法在数据完整性方面的应用。在传递密码或其他重要信息时,要避免数据信息被盗取,同时,还要确保信息发送者对自己所发送的文件有可追溯性,信息接收方可以明确信息发送者是谁,还能核对信息是否被篡改过,从而避免信息能准确送达且不被修改。
借助md算法来确保系统中信息安全传递的流程为:信息发送者通过网络把信息块传递给接受者乙,乙把信息块改名为n,信息发送者甲发送信息块时,由系统应用md5加密算法核算出信息块的哈希值md5值m,信息接受者乙在接受文件时,由系统应用md5算法核算出信息块的哈希值md5值n,如果md5值m和n等值,则信息块是完整准确的,原始文件在传递的过程中未受到损坏或增加,同时,信息传递者甲也可以核对传递前后信息块的哈希值,以确认乙
接收的信息块是否是自己发送给乙的,是否被篡改过。
3基于md5加密算法的系统安全登录实例分析
现在以实例来解释对传递过程中的数据进行md5算法加密:usernc=$usernc;
$this->mima=$mima;
$this->xym=$xym;
}
public function chk(){
if(trim($this->xym)!=trim($_session[“autonum”])){ echo”“;
exit;
}
include_once(“common.php”);
$sql=mysql_query(“select usernc from tb_yonghu where usernc=‘“.$this->usernc.”‘ and
pwd=‘“.$this->mima.”‘“,$conn);
$info=mysql_fetch_array($sql);
if($info==false){
echo”“;
exit;
}else{
if($_session[“unc”]!=““){
session_unregister(“unc”);
}
session_register(“unc”);
$_session[“unc”]=$this->usernc;
mysql_query(“update tb_yonghuset
logintimes=logintimes+1,lastlogintime=‘“.date(“y-m-d h:i:s”).”‘“,$conn);
echo ““;
}
}
}
$obj=new dengluyanzheng($_post[“yonghuming”],
md5($_post[“mima”]),$_post[“xym”]);//对传递的信息进行md5算法加密,增强数据安全性。
$obj->chk();
?>
通过在系统登录环节增加md5算法的调用,强化了传递信息的的安全性,有助于避免密码的泄露。
4结束语
在系统登录模块中,对密码进行md5算法加密后存储在数据库中,提高了系统的安全性。用户的验证过程,也可以借助md5进行校验,改算法过程执行效率高,对系统负荷影响小,具有很好的可行性。