簡體   English   中英

將加密服務從.Net移植到Java

[英]Porting Encryption Service from .Net To Java

我有一個加密服務(.Net Class Lib),現在我必須將其移植到java,就加密和解密而言,兩個服務都可以正常工作,但是問題是我必須將加密值保存在數據庫中,並且Java服務生成的加密值必須與.Net類lib生成的值匹配。

現在,如果我加密一個值,說android這兩個服務將生成不同的加密值。 有什么可能的解決方法或要尋找的東西...

加密系統通常具有以下參數:

  • 算法
  • 加密密鑰(如果適用,還有初始化向量)
  • 密碼塊模式

可以使用任何語言在任何平台上開發系統,只要這三個條件相同,則任何實現的輸出都將相同。 平台字節序之類的內容無關緊要,因為算法應使用字節作為基本單位。

因此,如果您為相同的輸入獲得不同的輸出,那么其中的一項或多項是錯誤的:)

如果您已經開發了自己的加密系統(例如,您自己實現了3DES),那可能就是您的錯誤所在。 始終將加密系統的實施留給學術專業人員

我將假設您正確設置了密鑰和IV,從而離開了密碼塊模式-這是最合理的解釋,因為不同的平台都有各自的默認值。

但是,如果您已驗證.NET和Java實現中所有這些內容均相同,則應重新發布問題,但要提供更多詳細信息,包括相關的源代碼。

我做了同樣的事情-從Java到C#。 查看開放源代碼項目中的現有代碼可能會有所幫助。

  • LockCrypt是我寫的一個例子
  • Keepass具有所有主要語言的端口,因此您可以比較每種端口實現加密的方式

暫無
暫無

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

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