2015-03-19 93 views
0

我需要在我的項目中使用AES算法,所以我想有一個常量密鑰的所有數據進行加密,如何在C#中創建一個全局常量字節數組作爲關鍵?如何在C#中創建字節數組常量?

+0

你不能。 C#只允許在'string'和'numeric'類型上使用'const'。 https://msdn.microsoft.com/en-us/library/e6w8fe1b.aspx您應該使用'static readonly'來代替。 – Aron 2015-03-19 01:14:27

+0

@Aron你可以在引用類型上使用'const',但是你不能給它賦予任何東西,除了'null'。 – MarcinJuraszek 2015-03-19 01:15:28

+1

硬編碼常數密鑰的思想與加密目的有關。最好從用戶輸入中獲得密鑰 - 比如使用PBKDF2或類似的密碼。 – vcsjones 2015-03-19 01:17:13

回答

3

唯一byte[]常數可以創建被下列之一:

const byte[] myBytes = null; 

這是因爲byte[](或一般每陣列)是引用類型和引用類型常數可以僅具有分配給它null值(但string類型除外,它們可以與字符串文字一起使用)。

常量可以是數字,布爾值,字符串或空引用。

0

像這樣:

static readonly byte[] key = new byte[] { .. } 

或許可以考慮使用一個字符串,然後使用Bin64

注意陣列的讀/寫,因此不是恆定的將其轉換爲字節。