原文:
c#:使用md5對使用者密碼加密與解密
一.使用16位、32位、64位md5方法對使用者名稱加密
1)16位的md5加密
//////16位md5加密
//////
///public
static
string md5encrypt16(string
password)
2)32位的md5加密
//////32位md5加密
//////
///public
static
string md5encrypt32(string
password)
return
pwd;
}
3)64位的md5加密
publicstatic
string md5encrypt64(string
password)
4)使用md5為使用者密碼加密
//////加密使用者密碼
//////
密碼///
加密位數
///加密密碼
public
static
string md5(string password, int
codelength)
//32位加密
if (codelength == 32
)
}return
string
.empty;
}
由於md5是不可逆的,所以加密之後就無法解密,取使用者名稱和密碼時候,需要再加密一邊使用者輸入的資料與資料庫中已加密的資料進行比對。如果比對結果一致,則可以判定登陸成功!**如下所示:
//////登陸
///public model.userinfo userlogon(string userid, string pwd, out
string
statuscode)
else
}else
return
model;
}
5)通過descryptoserviceprovider物件對字串進行加密解密
//////des資料加密
//////
目標值///
金鑰///
加密值public
static
string encrypt(string targetvalue, string
key)
var returnvalue = new
stringbuilder();
var des = new
descryptoserviceprovider();
byte inputbytearray =encoding.default.getbytes(targetvalue);
//通過兩次雜湊密碼設定對稱演算法的初始化向量
des.key =encoding.ascii.getbytes(formsauthentication.hashpasswordforstoringinconfigfile
(formsauthentication.hashpasswordforstoringinconfigfile(key,
"md5").
substring(
0, 8), "
sha1
").substring(0, 8
));
//通過兩次雜湊密碼設定演算法的機密金鑰
des.iv =encoding.ascii.getbytes(formsauthentication.hashpasswordforstoringinconfigfile
(formsauthentication.hashpasswordforstoringinconfigfile(key,
"md5")
.substring(
0, 8), "
md5").substring(0, 8
));
var ms = new
memorystream();
var cs = new
cryptostream(ms, des.createencryptor(), cryptostreammode.write);
cs.write(inputbytearray,
0, inputbytearray.length);
cs.flushfinalblock();
foreach (byte b in
ms.toarray())
", b);
}return
returnvalue.tostring();
}
此種演算法可以通過加密金鑰進行解密,解密方法如下:
//////des資料解密
//////
//////
public
static
string decrypt(string targetvalue, string
key)
//定義des加密物件
var des = new
descryptoserviceprovider();
int len = targetvalue.length / 2
;
var inputbytearray = new
byte
[len];
intx, i;
for (x = 0; x < len; x++)
//通過兩次雜湊密碼設定對稱演算法的初始化向量
des.key =encoding.ascii.getbytes(formsauthentication.hashpasswordforstoringinconfigfile
(formsauthentication.hashpasswordforstoringinconfigfile(key,
"md5").
substring(
0, 8), "
sha1
").substring(0, 8
));
//通過兩次雜湊密碼設定演算法的機密金鑰
des.iv =encoding.ascii.getbytes(formsauthentication.hashpasswordforstoringinconfigfile
(formsauthentication.hashpasswordforstoringinconfigfile(key,
"md5")
.substring(
0, 8), "
md5").substring(0, 8
));
//定義記憶體流
var ms = new
memorystream();
//定義加密流
var cs = new
cryptostream(ms, des.createdecryptor(), cryptostreammode.write);
cs.write(inputbytearray,
0, inputbytearray.length);
cs.flushfinalblock();
return
encoding.default.getstring(ms.toarray());
}
轉 C 使用MD5對使用者密碼加密與解密
c 中常涉及到對使用者密碼的加密於解密的演算法,其中使用md5加密是最常見的的實現方式。本文總結了通用的演算法並結合了自己的一點小經驗,分享給大家。一.使用16位 32位 64位md5方法對使用者名稱加密 1 16位的md5加密 16位md5加密 public static string md5en...
基於C 對使用者密碼使用MD5加密與解密
一.使用16位 32位 64位md5方法對使用者名稱加密 1 16位的md5加密 16位md5加密 public static string md5encrypt16 string password 2 32位的md5加密 32位md5加密 public static string md5encry...
註冊使用者時,使用MD5對密碼進行加密
當進行使用者註冊時,可以使用md5演算法對密碼進行加密,保證資料的安全性 package com.xhz.utils public class md5code private long state newlong 4 state abcd private long count newlong 2 n...