重寫的問題,因爲它似乎我不夠具體;Java的正則表達式範圍
給定一個RSA系統p = 263,q = 587,公鑰Ê = 683和私有密鑰d = 81599.因此Ñ = PQ = 154381。對於一個消息,說「我是學生」,加密如下進行:
- 轉換任何字母(inclu ding空格)轉換爲3位ASCII碼,即073 032 065 077 032 065 032 083 084 085 068 069 078 084.
- 加入每兩個相鄰的ASCII碼形成一個塊,即073032 065077 032065 032083 084085 068069 078084.(如果最後一封信沒有任何內容,則使用000)。
- 使用加密算法Ç =米Ë MOD Ñ到每塊加密; Ç = 73032 MOD 154381 = 103300等
假設你是一個消息的接收器:33815872282353670979238213794429016637939017111351.是什麼內容?
經過一番考慮後,我在考慮,因爲我必須解碼部分,即解碼33815,然後87228等,等等,我應該只是將解碼部分分成兩半,並檢查是否每個一半在ascii範圍內,如果不是,則返回到原始並以不同的方式分割。這聽起來像是一個更好的解決方案,而不是試圖用正則表達式來破解一些東西嗎?
P.S.解碼被認爲是家庭作業,我手工完成了這一工作,並且知道信息解碼爲「我討厭密碼學」(看起來我的講師有幽默感),所以你不幫我做作業。把它變成一個程序只是一些額外的課程,我認爲它可能很有趣。
您能否更詳細地描述一下您嘗試使用RSA實現的目標?我們可以用你的正則表達式來幫助你,但是我覺得在所有這些上面有更多的錯誤。修復這個錯誤可能會消除您對上述複雜解決方案的需求 – 2012-04-03 12:24:26
我從來沒有直接使用過RSA,但我無法想象這是讓您的角色迴歸的正確途徑。 – stema 2012-04-03 12:28:05
RSA是否將消息解碼爲「byte []」?我知道它沒有解碼成字母數字的字符串表示。你應該可以做一個'new String(bytes)'來獲取關聯的'String'。 – Gray 2012-04-03 12:41:49