安全性之加密演算法

2022-07-08 19:51:10 字數 3112 閱讀 3084

資訊保安越來越重要的今天,系統設計和開發過程當中必要的加密技術必不可少,根據專案中的實際經驗總結一下實際專案中安全使用場景。

系統內部密碼使用md5加密,密碼不可逆,不可使用任何手段讓任何人獲取使用者的密碼,如果安全級別更高一些可以多次md5或混合加密。

特殊欄位的安全保密使用對稱加密演算法,常用的有des/aes,對於當今的計算機發展速度,des加密相對已經容易被破解,所以推薦使用aes進行加解密。

.net的des加密演算法實現

///

///獲取金鑰

/// private

static

string

key 19123456789123456789a},ds

"; }

}//////

獲取向量

/// private

static

string

iv ,';s

"; }

}//////

aes加密

/// ///

明文本串

///密文 public

static

string aesencrypt(string

plainstr)}}

catch

aes.clear();

return

encrypt;

}//////

aes加密

/// ///

明文本串

///加密失敗時是否返回 null,false 返回 string.empty

///密文 public

static

string aesencrypt(string plainstr, bool

returnnull)

//////

aes解密

/// ///

密文字串

///明文 public

static

string aesdecrypt(string

encryptstr)}}

catch

aes.clear();

return

decrypt;

}//////

aes解密

/// ///

密文字串

///解密失敗時是否返回 null,false 返回 string.empty

///明文 public

static

string aesdecrypt(string encryptstr, bool

returnnull)

非對稱加密.net的實現:

第一步:根據上面的原理性介紹,我們需要生成公鑰(發信方需要)和私鑰(收信方需要),實現**如下:

//製造公鑰和私鑰的方法如下:

rsacryptoserviceprovider crypt = new

rsacryptoserviceprovider();

string publickey = crypt.toxmlstring(false);//

公鑰string privatekey = crypt.toxmlstring(true);//

私鑰crypt.clear();

第二步:發信方使用公鑰對明文進行加密,實現**如下:

a.txt

"), utf8encoding.utf8);

string readpublickey = sr.readtoend(); //

包含 rsa 金鑰資訊的 xml 字串。

sr.close();

utf8encoding enc = new

utf8encoding();

byte bytes =enc.getbytes(textbox1.text.trim());

rsacryptoserviceprovider crypt = new

rsacryptoserviceprovider();

crypt.fromxmlstring(readpublickey);

bytes = crypt.encrypt(bytes, false

);string encryttext =convert.tobase64string(bytes);

string abb =server.urlencode(encryttext);

response.write(

"密文為:

" +abb);

第三步:收信方使用私鑰對密文進行解密,實現**如下:

b.txt

"), utf8encoding.utf8);

string readprivatekey =sr.readtoend();

sr.close();

rsacryptoserviceprovider crypt = new

rsacryptoserviceprovider();

utf8encoding enc = new

utf8encoding();

byte bytes =convert.frombase64string(@server.urldecode(textbox1.text.trim()));

crypt.fromxmlstring(readprivatekey);

byte decryptbyte = crypt.decrypt(bytes, false

);string decrypttext =enc.getstring(decryptbyte);

response.write(

"明文為:

" + decrypttext);

簡單實現:

系統對外的一些介面會顯示一些資料,為了這些資料的安全,介面提供的資料進行aes加密,然後客戶端接收後再進行解密操作。如果你還在使用des加密趕快進行替換吧。

後續希望研究並運用:

1、ddos的防護技巧

2、跨站點請求偽造

3、xss攻擊

4、檔案上傳漏洞

5、資訊垃圾過濾

加密演算法中私鑰的安全性

著名的digg 近期遭遇到了一次尷尬的事件,digg不得不對文章進行了審查,並刪除了乙個帖子。因為那個帖子裡包含有這樣的字串 09f911029d74e35bd84156c5635688c0。這個128位的字串代表了什麼含義呢?這串數字是hd 破解金鑰 hd processing key 可以使使用...

加密演算法的安全性和特點

常見演算法歸類 雜湊函式不屬於加密演算法 國內國外 分類演算法 簡述國內 對稱sm1 演算法未公開,只能採用硬體實現 國內對稱 sm4無線區域網標準的分組資料演算法 國內對稱 sm7採用硬體實現 國內對稱 zuc祖沖之演算法 國內非對稱 sm2橢圓雙曲線公鑰密碼演算法,基於ecc 國內非對稱 sm9...

安全 加密演算法

一 對稱加密 1.caesar encrypting凱撒加密法 字母移位。2.vigen re cipher維吉尼亞加密法 加強版凱撒演算法 第i個密文字母 第i個明文本母,第i個金鑰字母 例如 this is a test.金鑰 day 則 明文 thisisatest 金鑰 daydaydayd...