2013-03-16 86 views
0

我試圖在String的文本上實現RSA加密/解密算法。但是,我在網上找到的所有內容都使用密碼,或者他們正在使用整數執行算法。有沒有人能給我一個簡單的指導來實現這個例如,一個句子? 我不想使用Cipher或任何其他庫,因爲我想知道它是如何工作的。在不使用密碼的情況下在Java中實現RSA

編輯:謝謝大家的幫助。我終於得到它的工作:)

+0

爲什麼沒有對SO搜索,我我發現這個已經實現的幾個問題,如http://stackoverflow.com/questions/5818842/problems-encrypting-a-string-using-rsa-algorithm-in-java – Dutts 2013-03-16 08:27:12

+0

感謝。奇怪的是,當我搜索時沒有出現。所有我看到的是使用密碼或其他庫:)) – 2013-03-16 08:31:26

+0

沒問題,很樂意幫助 – Dutts 2013-03-16 09:01:36

回答

1

要做的最好的事情是熟悉算法本身。 Wikipedia對它有不錯的解釋。然後你需要實現模塊化操作。當你完成上述操作時,簡單地將你想要加密的消息作爲一個數字(實際上是一個很大的數字)並遵循wiki中描述的操作。一個句子(或任何其他字符序列)可被視爲一個數字作爲其正好的字節序列。

+0

是的我已經閱讀了維基百科文章。基於此,我已經能夠生成公鑰和私鑰,並且能夠對整數進行加密和解密。在轉換字符串時,我是否將它轉換爲大整數?另外,你如何將數字轉換回字符串? – 2013-03-16 08:26:33

+0

要將字符序列轉換爲大整數,只需遍歷它,並且每個字符都將當前結果值移動8位,然後添加當前字符值。要將結果轉換回字符串,請執行以下操作:按位進行操作,並使用掩碼0xFF轉換的數字進行操作。然後將結果數字作爲字符值添加到結果中,並將轉換後的數字8位右移。 – Struchu 2013-03-16 09:09:00

+0

這當然是大端的方式。對於小端,您需要向後迭代轉換的字符串,而不是預先附加擴展字符。 – Struchu 2013-03-16 09:18:17

0

RSA全部取決於大素數以及它們如何非常難以分解。有關這方面的進一步知識,我會給你兩個資源,將進一步深入解釋算法。我建議寫下你想在java中創建哪些變量/方法以保持組織。

這裏有資源:

YouTube視頻這就解釋了該算法的前提: RSA Cipher Explained

更多互動幻燈片說明: RSA Algorithm Slide Show

相關問題