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