1.自定義加密 base64編碼與其他編碼轉換
using system;
using system.text;
///
/// 實現base64編碼與其它編碼轉換的類
///
public class base64provider
///
/// 將其它編碼的字串轉換成base64編碼的字串
///
/// 要轉換的字串
///
public static string encodebase64string(string source)
else
}///
/// 將base64編碼的字串轉換成其它編碼的字串
///
/// 要轉換的base64編碼的字串
///
public static string decodebase64string(string result)
else}}
2.對稱加密
using system;
using system.text;
using system.security.cryptography;
using system.io;
///
/// des演算法加密解密
///
public class desprovider
//預設的初始化金鑰
private static string key = "netskycn";
///
/// 對稱加密解密的金鑰
///
public static string key
set}
#region 加密
///
/// 採用des演算法對字串加密
///
/// 要加密的字串
/// 加密的金鑰
///
public static string encryptstring(string encryptstring,string key)
//加查金鑰是否為空
if (string.isnullorempty(key))
//將金鑰轉換成位元組陣列
byte keybytes = encoding.utf8.getbytes(key);
//設定初始化向量
byte keyiv = keybytes;
//將加密字串轉換成utf8編碼的位元組陣列
byte inputbytearray = encoding.utf8.getbytes(encryptstring);
//呼叫encryptbytes方法加密
byte resultbytearray = encryptbytes(inputbytearray, keybytes, keyiv);
//將位元組陣列轉換成字串並返回
return convert.tobase64string(resultbytearray);}
///
/// des加密
///
/// 要加密的字串
///
public static string encryptstring(string encryptstring)
///
/// 採用des演算法對位元組陣列加密
///
/// 要加密的位元組陣列
/// 演算法的金鑰,長度為8的倍數,最大長度64
/// 演算法的初始化向量,長度為8的倍數,最大長度64
///
public static byte encryptbytes(byte sourcebytes, byte keybytes, byte keyiv)
else
}#endregion
#region 解密
public static string decryptstring(string decryptstring,string key)
if (string.isnullorempty(key))
byte keybytes = encoding.utf8.getbytes(key);
byte keyiv = keybytes;
//將解密字串轉換成base64編碼位元組陣列
byte inputbytearray = convert.frombase64string(decryptstring);
//呼叫decryptbytes方法解密
byte resultbytearray = decryptbytes(inputbytearray, keybytes, keyiv);
//將位元組陣列轉換成utf8編碼的字串
return encoding.utf8.getstring(resultbytearray);}
///
/// des解密
///
/// 要解密的字串
///
public static string decryptstring(string decryptstring)
///
/// 採用des演算法對位元組陣列解密
///
/// 要加密的位元組陣列
/// 演算法的金鑰,長度為8的倍數,最大長度64
/// 演算法的初始化向量,長度為8的倍數,最大長度64
///
public static byte decryptbytes(byte sourebytes, byte keybytes, byte keyiv)
else
}#endregion
///
/// 檢查金鑰或初始化向量的長度,如果不是8的倍數或長度大於64則擷取前8個元素
///
/// 要檢查的陣列
///
private static byte checkbytearraylength(byte bytearray)
//如果陣列長度不是8的倍數
else if (bytearray.length % 8 != 0 || bytearray.length > 64)
else}}
3.加密雜湊 md5
using system;
using system.text;
using system.security.cryptography;
///
/// md5provider 的摘要說明
///
public class md5provider
///
/// 用md5演算法進行加密雜湊
///
///
/// }}
幾種加密演算法
簡單的加密解密 base64 嚴格地說,屬於編碼格式,而非加密演算法 md5 message digest algorithm 5,資訊摘要演算法 sha secure hash algorithm,安全雜湊演算法 hmac hash message authentication code,雜湊訊息...
安全 加密演算法
一 對稱加密 1.caesar encrypting凱撒加密法 字母移位。2.vigen re cipher維吉尼亞加密法 加強版凱撒演算法 第i個密文字母 第i個明文本母,第i個金鑰字母 例如 this is a test.金鑰 day 則 明文 thisisatest 金鑰 daydaydayd...
安全加密演算法
在閱讀本文之前,如果您還不了解http,https,ssl tls這幾個概念,請跳轉以下鏈結閱讀該文章 在聊安全加密之前,我們先來看看http協議下瀏覽器與伺服器之間的互動。如上圖所示,我們的瀏覽器訪問伺服器的時候,首先需要建立乙個連線,那麼如何連線呢?我們需要連入網路 這是句廢話,不過這是為後文鋪...