소프트웨어 개발 과정에서는 사용자 비밀번호와 같은 주요 정보의 저장이 필연적으로 수반됩니다. 대부분의 경우 사용자의 비밀번호는 데이터베이스에 저장됩니다. 어떠한 비밀유지 조치도 추가하지 않고 직접 평문으로 저장하게 되면 사용자의 개인정보가 유출되기 쉬우며, 기업과 사용자에게는 예측할 수 없는 손실이 발생하게 됩니다.
현재 다음과 같이 일반적으로 사용되는 비밀번호 암호화 저장 알고리즘이 많이 있습니다. MD5
、3DES
、AES
、SHA1
etc.
오늘은 MD5 암호화 알고리즘을 중심으로 소개하겠습니다.
MD5 알고리즘이란
MD5는 디지털 서명을 생성하는 데 사용되는 단일 해시 알고리즘으로, 512비트 그룹으로 입력 정보를 처리하며, 각 그룹은 16개의 32비트 해싱 알고리즘으로 나뉩니다. , 일련의 처리 후 알고리즘의 출력은 4개의 32비트 그룹으로 연결되어 128비트 해시 값을 생성합니다.
암호 필드 값을 ASP.NET을 사용하여 암호화합니다. 코드는 다음과 같습니다.
using System.Security.Cryptograhoy;//引入MD5加密命名空间 public string GetMD5(string strPwd) { //将要加密的字符串加上前缀与后缀后再加密 string cl = DateTime.Now.Month + strPwd + DateTime.Now.Day; string pwd = ""; //实例化一个MD5对象 MD5 md5 = MD5.Create(); //加密后是一个字节类型的数组,要注意编码UTF8/Unicode等的选择 byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl)); //翻转生成的MD5码 s.Reverse(); //通过循环,将字节类型的数组转换为字符串 //只取MD5码的一部分,这样恶意访问者无法知道取的是哪几位 for(int i = 3;i < s.Length-1; i++) { //将得到的字符串使用十六进制类型格式化。格式化后的字符是小写的字母,如果使用大写(X),则格式化后的字符是大写字母 //进一步对生成的MD5码做一些改造 pwd = pwd + (s[i] < 198 ? s[i] + 28 : s[i]).ToString("X"); } return pwd; }
Note
MD5 알고리즘으로 생성된 해시 값을 단순히 사용하면 크랙이 발생할 수 있습니다. 따라서 실제 개발 과정에서는 MD5 알고리즘과 솔트 알고리즘을 결합하여 해독할 수 없는 암호화된 문자열을 생성해야 합니다.
위 내용은 ASP.NET 데이터베이스 비밀번호: MD5 암호화 알고리즘에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!