簡體   English   中英

使用Microsoft Crypto API和C#解密字符串

[英]Decrypting string with Microsoft Crypto API with C#

因此,在我的工作場所,我有一個基於.NET的Web應用程序,該應用程序必須在查詢字符串中選擇一個加密參數。

提供加密字符串的用戶是外部承包商,他們更喜歡(幾乎是需求。盡管不能更改承包商,但更高的價格決定了這些事情...),使用Microsoft的Crypto API來加密字符串。

好吧,很公平,我可以用C#解密它,但是經過無休止的搜索之后,我仍然對它的工作方式感到迷惑。

這意味着我什至無法提供示例代碼,並且在無法解密此字符串之前,我一直處於此綁定中。

我所擁有的是:

我有他們用來加密的通用密碼,我不得不用它來解密。

加密設置為:“ CALC_AES_128”哈希:“ CALC_MD5”。 字符串被加密,然后被散列。

因此,我想對其進行散列並解密。

我知道很多事情要問,但是我該怎么做呢?

您的外部承包商不知道他在說什么。

散列用作活板門功能,一種在不通知事物是什么的情況下識別事物的方法。 它是數字指紋。 進行“加密安全”哈希的方式意味着即使給出哈希和算法,也很難創建與指紋匹配的對象。

AES是一個不確定的密碼。 非確定性來自於初始化向量,該向量每次都應為一個隨機數(不是從模版上硬編碼的,Ahem Sony)。 這意味着,出於所有意圖和目的,AES的輸出都是純隨機的(除非您擁有密鑰)。 好的密碼都是為了產生統計上隨機的數據而設計的(因此幾乎沒有數據可構成攻擊依據)。

因此,通過將數據輸入到創建隨機數據的函數中,然后將其放入活板門函數中,您將產生真正難以解碼的東西(從數學上來說,這是困難的,實際上,您需要的能量比宇宙中存在的能量還多)計算這個)。

至於如何在查詢字符串中以安全的方式發送數據(確保安全,就像在不安全的網絡上窺探一樣)? .net支持的一個眾所周知的協議可以很好地做到這一點。 它稱為HTTPS。

暫無
暫無

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

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