基於C 對使用者密碼使用MD5加密與解密

2022-09-26 06:54:11 字數 3448 閱讀 4725

一.使用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加密

public static 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

(formsauthenticati程式設計客棧on.hashpasswordforstoringinconfigfile(key, "md5").

substring(0, 8), "sha1").substring(0, 8));

// 通過兩次雜湊密碼設定演算法的機密金鑰

des.iv = encoding.ascii.getbytes(formsauthentication.hashpasswordforstoringinconfigfile

(formsauthentication.hashpasswordforstoringinconfigfile(key, "md程式設計客棧5")

.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資料解密

///

///

/// nnvabname="key">

///

public static string decrypt(string targetvalue, string key)

// 定義des加密物件

var des = new descryptoserviceprovider();

int len = targetvalue.length / 2;

var inputbytearray = new byte[len];

int x, 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加密與解密

本文位址: /ruanjian/csharp/137545.html

C 使用MD5對使用者密碼加密與解密

原文 c 使用md5對使用者密碼加密與解密 一.使用16位 32位 64位md5方法對使用者名稱加密 1 16位的md5加密 16位md5加密 public static string md5encrypt16 string password 2 32位的md5加密 32位md5加密 public ...

轉 C 使用MD5對使用者密碼加密與解密

c 中常涉及到對使用者密碼的加密於解密的演算法,其中使用md5加密是最常見的的實現方式。本文總結了通用的演算法並結合了自己的一點小經驗,分享給大家。一.使用16位 32位 64位md5方法對使用者名稱加密 1 16位的md5加密 16位md5加密 public static string md5en...

註冊使用者時,使用MD5對密碼進行加密

當進行使用者註冊時,可以使用md5演算法對密碼進行加密,保證資料的安全性 package com.xhz.utils public class md5code private long state newlong 4 state abcd private long count newlong 2 n...