3DES加解密類

2022-01-13 15:21:14 字數 2422 閱讀 6993

using

system;

using

system.io;

using

system.security.cryptography;

using

system.text;

namespace

gt.common.des

if (string

.isnullorwhitespace(siv))

icryptotransform ct;

memorystream ms;

cryptostream cs;

byte

byt;

mcsp.key =convert.frombase64string(skey);

byte biv=encoding.default.getbytes (siv);

mcsp.iv =biv;

//指定加密的運算模式

mcsp.mode =system.security.cryptography.ciphermode.ecb;

//獲取或設定加密演算法的填充模式

mcsp.padding =system.security.cryptography.paddingmode.pkcs7;

ct = mcsp.createencryptor(mcsp.key, mcsp.iv);//

建立加密物件

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());

}catch

(exception ex)

}//////

解密字串

/// ///

加密後的字串

///金鑰,必須32位

///向量,必須是12個字元

///解密後的字串

public

string decryptstring(string value, string skey, string

siv)

if (string

.isnullorwhitespace(siv))

icryptotransform ct;

//加密轉換運算

memorystream ms;//

記憶體流 cryptostream cs;//

資料流連線到資料加密轉換的流

byte

byt;

//將3des的金鑰轉換成byte

mcsp.key =convert.frombase64string(skey);

//將3des的向量轉換成byte

mcsp.iv =encoding.default.getbytes(siv);

mcsp.mode =system.security.cryptography.ciphermode.ecb;

mcsp.padding =system.security.cryptography.paddingmode.pkcs7;

ct = mcsp.createdecryptor(mcsp.key, mcsp.iv);//

建立對稱解密物件

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());

}catch

(exception ex)

}#endregion

#region key

////public

static

readonly

string key = "

aybcwdefgh1ntv2x3qr4u5o6igklszmp";

//public

static

readonly

string iv = "

85632147";

#endregion

}}

python 封裝3des加解密庫

最近專案需要用到3des加解密,python寫的3des加密速度太慢,所以考慮用c c 完成,專案是在linux部署,而linux中openssl中包括3des加密,而且自己寫的肯定沒有大神們都用的openssl好用,所以決定使用openssl中的加密模組。起初,是想用python直接呼叫,但是需要...

Des與3Des加密解密

des和3des演算法 public class des b ret.tostring return ret.tostring 3des加密 金鑰不能每8位重複,例如 123456781234567812345678,如果這樣則演算法退化為des,c 會檢測,不能使用 明文 金鑰 public st...

iOS AES加密 解密 3DES加密 解密

加密步驟 字串經過aes加密得到nsdata型別,然後在對加密後的nsdata型別進行base64轉碼,得出最終的字串。解密步驟 對要解密的字串進行base64解碼,然後進行解密,得出原字串。首先建立乙個nsdata jkencrypt類別,寫完的.件如下 import inte ce nsdata...