前兩年寫的東西,現在整理一下發出來!以前公司需要做webservice,並且對webservice的soapheader進行加密,所以就寫了這麼個東東!使用這個類,需要金鑰管理!為了保證資料的安全性往往要對資料進行加密,但是加密的缺點之一,就是影響程式的執行效率,所以,當時我的思路是只對使用者的登入資訊(使用者名稱,密碼)進行加密!資料用明文傳輸,使用者資訊驗證沒有通過的情況下, 不進行資料傳輸。
還有一點安全建議,就是定期的更換金鑰,在這個例子中,我用的是對稱加密,加密方和解密方的金鑰一致!定期的更換金鑰可以讓安全性提高一大截!
**如下:
using system;
using system.security.cryptography ;
using system.text;
using system.io;
namespace sedo
; //定義加密類
internal class encrypttransformer
internal icryptotransform getcryptoserviceprovider(byte byteskey)
else
// see if the client provided an initialization vector
if (null == initvec)
else
return des.createencryptor();
} case encryptionalgorithm.tripledes:
else
// see if the client provided an iv
if (null == initvec)
else
return des3.createencryptor();
} case encryptionalgorithm.rc2:
else
// see if the client provided an iv
if (null == initvec)
else
return rc2.createencryptor();
} case encryptionalgorithm.rijndael:
else
// see if the client provided an iv
if(null == initvec)
else
return rijndael.createencryptor();
} default: }
} //加密的偏移向量
internal byte iv
set
} //加密的金鑰
internal byte key
set
} }
//定**密類
internal class decrypttransformer
//加密的偏移向量
internal byte iv
set
} //加密的金鑰
internal byte key
set
} internal icryptotransform getcryptoserviceprovider(byte byteskey)
case encryptionalgorithm.tripledes:
case encryptionalgorithm.rc2:
case encryptionalgorithm.rijndael:
default: }
} //end getcryptoserviceprovider
} //定義加密者類
public class encryptor
public byte encrypt(byte bytesdata, byte byteskey,byte bytesiv)
catch(exception ex)
//設定加密的key和初始向量iv屬性
enckey = transformer.key;
initvec = transformer.iv;
encstream.flushfinalblock();
encstream.close();
//send the data back.
return memstreamencrypteddata.toarray();
} public byte iv
set
} public byte key
set
} }
//定**密者類
public class decryptor
public byte decrypt(byte bytesdata, byte byteskey,byte bytesiv)
catch(exception ex)
decstream.flushfinalblock();
decstream.close();
// 返回解密資料.
return memstreamdecrypteddata.toarray();
} public byte iv
set
} public byte key
set
} }
//類描述:檔案加密/解密類
public class securityfile
//加密的偏移向量
internal byte iv
set
} //加密的金鑰
internal byte key
set
} //功能描述:加密檔案
public void encryptfile(string infilename, string outfilename, byte byteskey, byte bytesiv)
encstream.close();
fout.close();
fin.close();
} catch(exception ex) }
//功能描述:解密檔案
public void decryptfile(string infilename, string outfilename, byte byteskey, byte bytesiv)
encstream.close();
fout.close();
fin.close();
} catch(exception ex) }
} }
C 乙個封裝的加密解密類
using system using system.text using system.globalization using system.security.cryptography using system.windows.forms namespace jh.encrypts 使用預設金鑰字串...
C 乙個封裝的加密解密類
using system using system.text using system.globalization using system.security.cryptography using system.windows.forms namespace jh.encrypts 使用預設金鑰字串...
C 乙個封裝的加密解密類
using system using system.text using system.globalization using system.security.cryptography using system.windows.forms namespace jh.encrypts 使用預設金鑰字串...