簡體   English   中英

如何從內部代碼生成IIS machineKey?

[英]How do I generate IIS machineKey from inside code?

我想要此web.config部分的隨機值:

<machineKey validation="HMACSHA512" decryption="AES"
     validationKey="I NEED VALUE FOR THIS" 
     decryptionKey="SOME KEY" />

我看到IIS管理器可以生成值,但是在我擁有的版本中,下拉菜單中沒有用於“ HMACSHA512”的選項。 所以我需要其他方法。

我可以為此編寫一些C#代碼,但是它應該做什么呢? 它應該生成足夠長的隨機數和格式嗎?

我是否只使用RNGCryptoServiceProvider類並生成適當的長字節數組,然后將其格式化為十六進制? 可以嗎?

我是否只使用RNGCryptoServiceProvider類並生成適當的長字節數組,然后將其格式化為十六進制?

差不多了 這就是.NET Framework在將其設置為AutoGenerate所做的事情

您可以使用RNGCryptoServiceProvider生成具有適當長度的十六進制值。 HMACSHA512使用512位值,即64字節或128個十六進制字符。 所以我們可以做這樣的事情:

var rng = System.Security.Cryptography.RandomNumberGenerator.Create();
var buffer = new byte[64];
rng.GetBytes(buffer);
var hmacKey = BitConverter.ToString(buffer).Replace("-", "");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM