我在我的應用程序中使用憑證選取器進行用戶認證。我的數據庫中的認證詳細信息是字符串格式。但是Credential Picker傳遞的密碼是加密形式(默認爲Negotiate認證協議),所以如何解密該密碼以便我可以與我的數據庫密碼相匹配。 使用DB存儲的密碼進行密碼匹配的最佳解決方案是什麼?下面 是代碼片段:來自憑證選取器的密碼
function launchCredentialPicker() {
Windows.Security.Credentials.UI.CredentialPicker.pickAsync("My Target", "My Message", "my Caption").then(function (results) {
var domainName = results.credentialDomainName;
WinJS.Application.sessionState.Username = results.credentialUserName;
WinJS.Application.sessionState.Password = results.credentialPassword;
WinJS.Application.sessionState.RememberPassword = (results.credentialSaveOption === Windows.Security.Credentials.UI.CredentialSaveOption.hidden) ? "Hidden" :
((results.credentialSaveOption === Windows.Security.Credentials.UI.CredentialSaveOption.selected) ? "Selected" : "Unselected");
});
}
在您的數據庫中存儲密碼未加密是一個*非常壞的主意.. –
這是不同的東西。請告訴如何將從憑證選取器(它是加密的和動態生成的)發出的密碼與數據庫密碼相匹配? –
密碼被散列或加密了嗎?如果它被散列(最有可能),則無法確定原始密碼。如果它已加密,則需要共享密鑰或專用密鑰才能對其進行解密。 –