2015-06-07 100 views
1

最近,我從我的一個客戶面臨着一個有趣的規定:.NET安全存儲敏感數據

如果你有存儲登錄/密碼在.config文件,它不能明文存儲。此外,如果您想在.config文件中加密此數據,則無法在源代碼中對加密密鑰進行硬編碼。

樣品配置部分敏感數據:

<configSections> 
    <section name="PayUSettings" type="JobSystem.Payments.PayU.PayUSettings, JobSystem.Payments" /> 
    </configSections> 

<PayUSettings PosId="265898" Login="xxx" Password="yyy" IsTestMode="False" /> 

什麼是可能的解決方案,以fullfill這個要求?

+0

使用智能卡的USB記憶棒來存儲私鑰,鎖在一個安全的堅持並希望最好的。您需要將密鑰存儲在可讀的地方。 – Jens

回答

1

幸運的是,.NET已經爲您提供了ProtectedConfiguration Provider的這個功能。這可以使用內置於窗口中的機器或用戶級密鑰容器來存儲密鑰信息。

https://msdn.microsoft.com/en-us/library/53tyfkaw(v=vs.80).aspx

如果這是一個Web應用程序,然後IIS使這個超級簡單的加密使用ASPNET_REGIIS.EXE web.config文件中的任何部分。在這裏看到的鏈接:

https://msdn.microsoft.com/en-us/library/zhhddkxy%28v=vs.140%29.aspx

如果這不是一個Web應用程序,然後它是一個有點困難(但不是很多),因爲你需要自己實現ProtectedConfiguration提供商。一個例子如何做到這一點,請訪問:

https://msdn.microsoft.com/en-US/library/dtkwfdky(v=vs.80).aspx

+0

謝謝你,它有很大的幫助 – Macko