c 加密 解密 雜湊

2022-03-08 19:36:22 字數 2580 閱讀 1456

des一共就有4個引數參與運作:明文、密文、金鑰、向量。其中這4者的關係可以理解為:

為什麼要向量這個引數呢?因為如果有一篇文章,有幾個詞重複,那麼這個詞加上金鑰形成的密文,仍然會重複,這給破解者有機可乘,破解者可以根據重複的內容,猜出是什麼詞,然而一旦猜對這個詞,那麼,他就能算出金鑰,整篇文章就被破解了!加上向量這個引數以後,每塊文字段都會依次加上一段值,這樣,即使相同的文字,加密出來的密文,也是不一樣的,演算法的安全性大大提高!

下面給出des加、解密的.net封裝版:

usingsystem;

usingsystem.text;

usingsystem.security.cryptography;

usingsystem.io;

namespace開發測試

/// ///獲取金鑰

///

private static stringkey

}/// ///獲取向量

///

private static stringiv

g\mk@k%:~y"; }

}/// ///des加密

///

/// 明文本串

/// 密文

public static string encrypt(stringplainstr)}}

catch

des.clear();

returnencrypt;

}/// ///des解密

///

/// 密文字串

/// 明文

public static string decrypt(stringencryptstr)}}

catch

des.clear();

returndecrypt;}}

}

aes是美國聯邦**採用的商業及**資料加密標準,預計將在未來幾十年裡代替des在各個領域中得到廣泛應用。aes提供128位金鑰,因此,128位aes的加密強度是56位des加密強度的1021倍還多。假設可以製造一部可以在1秒內破解des密碼的機器,那麼使用這台機器破解乙個128位aes密碼需要大約149億萬年的時間。

下面給出aes加解密的.net封裝版:

usingsystem;

usingsystem.text;

usingsystem.security.cryptography;

usingsystem.io;

namespace開發測試

/// ///獲取金鑰

///

private static stringkey

gefcaj

}/// ///獲取向量

///

private static stringiv

}/// ///aes加密

///

/// 明文本串

/// 密文

public static string encrypt(stringplainstr)}}

catch

aes.clear();

returnencrypt;

}/// ///aes解密

///

/// 密文字串

/// 明文

public static string decrypt(stringencryptstr)}}

catch

aes.clear();

returndecrypt;}}

}

md5和sha1雜湊通常被用於密碼中,很多人稱其為雜湊演算法,實際上它正確應該叫做雜湊演算法。雜湊是不可逆的,也就是沒有了"解密"這個說法。

下面給出md5與sha128雜湊的.net的system.web快速實現版:

usingsystem;

usingsystem.text;

usingsystem.io;

namespace開發測試

//32位大寫md5雜湊

public static string md5(stringstr)

//大寫sha1雜湊

public static string sha1(stringstr)}}

全面版:

usingsystem;

usingsystem.text;

usingsystem.io;

usingsystem.security.cryptography;

namespace開發測試

//16位元組,128位

public static string md5(stringstr)

//20位元組,160位

public static string sha128(stringstr)

//32位元組,256位

public static string sha256(stringstr)

//48位元組,384位

public static string sha384(stringstr)

//64位元組,512位

public static string sha512(stringstr)}}

C 加密解密

using system using system.text using system.globalization using system.security.cryptography class des 加密字串 public string encryptstring string sinputs...

加密解密 c

include stdafx.h 常量 define c1 52845 define c2 22719 cstring encrypt cstring csdecode,word key 加密函式 csdecode result 儲存結果 result.empty 清除結果 for i 0 i re...

c 加密解密

很多地方需要用到針對字串進行加密,傳輸到目的地後再進行解密,又或者針對比如密碼進行加密後儲存到資料庫,用的時候進行直接比較或者解密後比較.比如我寫了乙個加密演算法,然後將 123456789 進行加密,得到密文 k355jm9somny8jhhygoy1axkfm4 tnxwess7 由於我的加密演...