2008-09-17 117 views
0

我正在爲我的應用程序製作一個簡單的授權系統。加密算法

我不知道密碼學,但我知道我需要一個由2個密鑰組成的算法:private和public。

我需要使用我的私鑰加密一些數據(過期日期和客戶電子郵件),然後我的應用程序將使用公鑰解密數據以比較過期日期。

有沒有一種已知的算法可以滿足我的需求?

編輯:問題解決了。助手類使用dsa可用Here

回答

5

結賬RSA。大多數現代化的平臺都會在其標準庫中實現RSA。

-1

這不是私鑰加密應該如何工作的。您使用公鑰對數據進行加密,但只能使用私鑰進行解密。

編輯:請忽略這我完全錯了。我會把它留給像我一樣學習的其他人

+0

不可以,因爲您使用私鑰進行加密並使用公開進行解密的簽名。 – 2008-09-17 02:05:39

-2

聽起來像你需要一個圖書館!

我建議檢查出LibTomCrypt

8

你想要做的實際上是所謂的加密世界「簽約」是什麼。你用私鑰加密某些東西,但由於公鑰是公開的,任何人都可以解密它。這樣做的算法稱爲「非對稱密碼」(因爲加密密鑰與解密密鑰不同)。

通常,計算數據的(密碼安全的)散列,並且僅對該散列進行簽名。這節省了加密整個消息的計算工作量,並且使得消息仍然可以以明文形式可讀,這可能是有用的。

具體來說,RSA算法將以安全的方式做你想做的事。

幫你一個忙,不要試圖自己實現它;相反,需要像OpenSSL庫那樣的現有實現。它有一個Apache風格的許可證,所以你可能被允許在你的應用程序中使用它。

(但請注意,這樣的發牌制度不可能完全安全的:有人仍然可以修改您的可執行文件,並刪除了檢查,但顯然這是更多的努力比,也就是說,只需修改一個註冊表值。)

-2

有這麼多的密碼算法,例如RSA,AES,WEP,但是如果有量子計算機,所有這些密碼系統都停機。所以,如果你想學習或熱衷於密碼學,你應該學習後量子密碼學。例如多變量密碼學,基於哈希的密碼學,基於格子的密碼學......

另外,您可以查看數字簽名。有很多人在用我們的生活。例如銀行安全系統。例如,對於數字簽名:RSA,HFE-v簽名方案,QUARTZ簽名方案

實際上,如果您想要了解這些算法類型,您需要對高級代數感興趣。