資料安全技術幾種加密演算法

2021-05-24 09:17:18 字數 3359 閱讀 5527

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協議下瀏覽器與伺服器之間的互動。如上圖所示,我們的瀏覽器訪問伺服器的時候,首先需要建立乙個連線,那麼如何連線呢?我們需要連入網路 這是句廢話,不過這是為後文鋪...