字串的加解密

2021-04-29 07:54:45 字數 2510 閱讀 5996

為了方便對於字串的加解密,.net提供了一些內建支援。一般我們更願意把它們封裝成乙個通用類,以重複使用.下面是乙個範例

public class encrypter

private symmetricalgorithm mcsp;

private const string civ = "kxwl7x2+fgm=";

private const string ckey = "fwgqwrrgkci=";

public encrypt()

mcsp = new descryptoserviceprovider();

///對稱加密

public string encryptstring(string value)

icryptotransform ct;

memorystream ms;

cryptostream cs;

byte byt;

ct = mcsp.createencryptor(convert.frombase64string(ckey), convert.frombase64string(civ));

byt = encoding.utf8.getbytes(value);

ms = new memorystream();

cs = new cryptostream(ms, ct, cryptostreammode.write);

cs.write(byt, 0, byt.length);

cs.flushfinalblock();

cs.close();

return convert.tobase64string(ms.toarray());

///對稱解密

public string decryptstring(string value)

icryptotransform ct;

memorystream ms;

cryptostream cs;

byte byt;

ct = mcsp.createdecryptor(convert.frombase64string(ckey), convert.frombase64string(civ));

byt = convert.frombase64string(value);

ms = new memorystream();

cs = new cryptostream(ms, ct, cryptostreammode.write);

cs.write(byt, 0, byt.length);

cs.flushfinalblock();

cs.close();

return encoding.utf8.getstring(ms.toarray());

///產生雜湊雜湊值

public string hashed(string input)

md5cryptoserviceprovider md5 = new md5cryptoserviceprovider();

byte byt = encoding.utf8.getbytes(input);

return convert.tobase64string(md5.computehash(byt));

///比較雜湊值(注意,雜湊演算法是不可逆的,所以只能進行比較

public bool comparehash(string input, string hashedstring) {

md5cryptoserviceprovider md5 = new md5cryptoserviceprovider();

return hashedstring.equals(hashed(input));

客戶程式呼叫的例子

public static void main()

encrypter encrypt = new encrypter();

console.writeline(encrypt.encryptstring("hello,world"));

console.writeline(encrypt.decryptstring("shwfba84ozrlqsmyrrakiw=="));

console.writeline(encrypt.hashed("chenxizhang"));

console.writeline(encrypt.comparehash("chenxizhang", "xll6ty7js1jpbssgopzbhg=="));

console.read();

出處:http://blog.csdn.net/chen_xizhang

字串加解密

題目 1 對輸入的字串進行加解密,並輸出。2加密方法為 當內容是英文本母時則用該英文本母的後乙個字母替換,同時字母變換大小寫,如字母a時則替換為b 字母z時則替換為a 當內容是數字時則把該數字加1,如0替換1,1替換2,9替換0 其他字元不做變化。3 解密方法為加密的逆過程。輸入 輸入一串要加密的密...

字串加解密

題目描述 1 對輸入的字串進行加解密,並輸出。2 加密方法為 當內容是英文本母時則用該英文本母的後乙個字母替換,同時字母變換大小寫,如字母a時則替換為b 字母z時則替換為a 當內容是數字時則把該數字加1,如0替換1,1替換2,9替換0 其他字元不做變化。3 解密方法為加密的逆過程。介面描述 實現介面...

字串加解密

描述 1 對輸入的字串進行加解密,並輸出。2 加密方法為 當內容是英文本母時則用該英文本母的後乙個字母替換,同時字母變換大小寫,如字母a時則替換為b 字母z時則替換為a 當內容是數字時則把該數字加1,如0替換1,1替換2,9替換0 其他字元不做變化。3 解密方法為加密的逆過程。輸入輸入一串要加密的密...