2013-10-31 20 views
-4

我怎樣才能加密加密和使用兩個字符串
更多的澄清如何使用兩個字符串中的JAVA

String order = {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}; 
String random = {q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m}; 

當我加密例如任何字解密文本:ABCDEFG;
當我加密它會顯示爲qwerty;

,當我解密,他將做相反
如果他寫你好解密的文本將pcssi

我很難用兩個字符串的索引嘗試,但我找不到任何結果

+2

使用char數組可能會更簡單地進行加密和解密。如果你不能使用數組,你應該從String對象中移除''''和'{}'以使它更簡單。 –

+3

向我們展示您的嘗試。您顯示的唯一兩行代碼甚至不是有效的Java代碼。 –

+0

我很困惑,你在問什麼。你問你爲什麼解密不工作? –

回答

1

如果你沒有被迫使用字符串

這裏你最好的選擇將使用一個AbstractMap.SimpleEntry<K,V>。此處的目標是將一個字母「綁定」到另一個字母上,從而允許您查找key(例如a),並檢索value(加密的字符,本例中爲q)。當你需要解密時,你可以用一些編碼從同一張表中找到屬於你的valuekey。假設你在你的例子中使用1對1的加密,你將能夠相對容易地做到這一點。

其他

在這裏的一些其他反應的描述使用charAt(int pos)方法。

4

因爲這很可能是一門功課,在這裏是如何完成它的一些提示:

  • 你需要修復的語法:字符串字面去雙引號,沒有逗號
  • 要「編碼「一個字符,使用indexOforder字符串中找到其位置,然後在random.charAt的調用中使用該索引。
  • 要對某個字符進行「解碼」,請按相反順序執行相同的操作:撥打,然後將索引傳遞給order.charAt

這裏是一個骨架代碼編碼單個字符,並對其進行解碼回(demo):

char orig = 'x'; 
char conv = random.charAt(order.indexOf(orig)); 
char back = order.charAt(random.indexOf(conv)); 

此代碼是不完整的 - 這是怎麼回事,如果被查找的字符最多是失敗而不是字符串存在於order字符串中,或​​者orderrandom字符串不能完全覆蓋整個字母表一次。

注:此實現的原始substitution cipher無關安全:如果有的話,它使你的系統安全假裝編碼的東西基本上停留在純文本。

+0

感謝了很多,但它不是一項作業 iam將開發一個加密和解密使用多種算法的程序 這樣,再次感謝,我會做到 感謝您的幫助 –

+1

@EngHashem歡迎您!試試看看它是否有效。如果有,請考慮通過點擊旁邊的灰色複選標記來接受答案。這可以讓其他網站訪問者知道您不再需要尋找改進的解決方案,併爲您在堆棧溢出中贏得新徽章。祝你好運! – dasblinkenlight

+1

@EngHashem正如其他人已經指出的,這種機制很難被認爲是加密。看看[這個問題](http://stackoverflow.com/q/1132567/851811)的基本雙向密碼加密的例子。 –

相關問題