加密,解密演算法

2022-02-16 09:28:01 字數 1629 閱讀 6415

private symmetricalgorithm mcsp;  //宣告對稱演算法變數

private const string civ = "mi56/+4zujhy12se6yjy111a";  //初始化向量

private const string ckey = "jkhuiy9d/9i="; //金鑰(常量)

//其中civ裡面的值可以修改的

//ckey也是可以改變的  ,改變之後的加密的值也會隨著改變

//加密演算法

icryptotransform ct; //定義基本的加密轉換運算

memorystream ms; //定義記憶體流

cryptostream cs; //定義將記憶體流鏈結到加密轉換的流

byte byt;

//createencryptor建立(對稱資料)加密物件

mcsp = new descryptoserviceprovider();

ct = mcsp.createencryptor(convert.frombase64string(ckey), convert.frombase64string(civ)); //用指定的金鑰和初始化向量建立對稱資料加密標準

byt = encoding.utf8.getbytes(value); //將value字元轉換為utf-8編碼的位元組序列

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()); //將記憶體流轉寫入位元組陣列並轉換為string字元

//解密演算法

icryptotransform ct; //定義基本的加密轉換運算

memorystream ms; //定義記憶體流

cryptostream cs; //定義將資料流鏈結到加密轉換的流

byte byt;

mcsp = new descryptoserviceprovider();

ct = mcsp.createdecryptor(convert.frombase64string(ckey), convert.frombase64string(civ)); //用指定的金鑰和初始化向量建立對稱資料解密標準

byt = convert.frombase64string(value); //將value(base 64)字元轉換成位元組陣列

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 static string encode string data 解密 public static string decode string data catch descryptoserviceprovider cryptoprovider new descryptoservi...

TripleDES加密 解密演算法

using system using system.collections.generic using system.linq using system.text using system.security.cryptography using system.io namespace 加密,使用密碼...

加密解密 DSA演算法

digital signature algorithm dsa 是schnorr和elgamal簽名演算法的變種,被美國nist作為dss digitalsignature standard 演算法中應用了下述引數 p l bits長的素數。l是64的倍數,範圍是512到1024 q p 1的160...