亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Fernet 在 Java 上進行對稱加密

使用 Fernet 在 Java 上進行對稱加密

海綿寶寶撒 2023-03-17 14:10:17
我想用Fernet模塊加密和解密 python 和 java 之間的消息。但我不明白他們舉的例子。反序列化現有密鑰:final Key key = new Key("cw_0x689RpI-jtRR7oE8h_eQsKImvJapLeSbXpwF4e4=");創建令牌:final Token token = Token.generate(random, key, "secret message");反序列化現有令牌:final Token token = Token.fromString("gAAAAAAdwJ6wAAECAwQFBgcICQoLDA0ODy021cpGVWKZ_eEwCGM4BLLF_5CV9dOPmrhuVUPgJobwOz7JcbmrR64jVmpU4IwqDA==");為什么需要一個隨機參數來加密秘密消息?我已經在 python 中實現了 fermet 加密,它從不要求任何隨機源。>>> from cryptography.fernet import Fernet>>> key = Fernet.generate_key()>>> f = Fernet(key)>>> token = f.encrypt(b"my deep dark secret")>>> tokenb'...'>>> f.decrypt(token)b'my deep dark secret我怎樣才能獲得與 python 相同的加密標準,以便我可以使用相同的加密密鑰?
查看完整描述

1 回答

?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

使用相同的密鑰,Python 和 Java 中的實現將完全兼容。但是當然,你必須在兩邊都使用同一個。如果您使用 Python 代碼作為基礎,請執行 aprint(key)并將相同的密鑰復制到 Java 變體(它將是一個 urlsafebase64 字符串,因此沒有傳輸問題)。在 Java 中生成令牌時,使用SecureRandom()實例。它僅用于 IV,無論如何都是令牌的一部分,因此可用于任何語言的解密代碼。Fernet Python 自動使用 good random(它是透明的,你不必選擇它)。但是,無論您在生成令牌時在 Java 中選擇什么隨機數,都不會對解密代碼產生任何影響,只需在兩個實例中使用相同的密鑰字符串即可。



查看完整回答
反對 回復 2023-03-17
  • 1 回答
  • 0 關注
  • 319 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號