簡體   English   中英

如何在Android中將字符串加密為有限長度的字符串

[英]How to encrypt string to a limited length string in Android

我需要在Android應用程序中加密20-32個字符的字符串,但是生成的字符串必須盡可能小,最好是10-20個字符(無論如何最多為32個字符)。 這是我的應用程序的必要要求(與加密的類型無關)。

我對加密技術一無所知,這是我第一次使用Android Crypto API。

我以這個示例作為開始,它可以工作,但是生成的字符串太大。

您能告訴我為實現此目的我必須更改該代碼嗎? 或者您可以提供一些有關此的教程嗎?

注意:我將使用完整代碼或指向教程的鏈接將答案標記為正確答案。 謝謝!

更新:

1)我想使用的算法是AES CBC或CFB-8。 通過這種加密,生成的字符串的長度為64。我無法將長度減小為32。您能建議一種方法嗎?

2)問題是此字符串在Java Web應用程序上加密,寫在rfid標簽上並在Android應用程序上解密。 如何管理加密密鑰?

3)我沒有找到FPE(格式保留加密)算法的任何實現/教程。 能給我一個嗎?

更新2:

我已經決定需要一個更簡單的算法,因為普通用戶無法讀取rfid標簽上的信息就足夠了。 但是仍然需要最多生成32個字符。 建議?

PS無論在上面的示例中嘗試哪種算法,即使輸入字符串只有一個字母,密文的大小也為64。(AES /或DES / CTR,CBC,ECB,CFB)

如果對可以采用任何形式的數據(明文)進行加密,則結果(密文)必須至少具有相同的大小。 原因很簡單:如果結果較小,則某些值可能會有多個純文本。 因此,對數據進行加密將永遠不會使其變得更小。

我們無法利用您所提供的信息制定好的計划。 而且您無法測試我們提出的建議是否安全。 即使我們對您的信息有更多了解,但如果加密非常棘手,則采用這種方法。 因此,恐怕您將不得不自己學習例如格式保存加密。 或聘請專家。

暫無
暫無

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

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