Javascript

安全地將對稱加密數據發送給合約?

  • May 6, 2017

嘿,我想知道將加密數據發送到契約的最佳技術是什麼,以後可以由初始使用者或契約本身解密,但不能由其他任何人解密。

我現在最好的猜測是使用 CryptoJS/Forge 創建一個密鑰對並使用公鑰對其進行加密,然後安全地保存私鑰直到消息準備好被解密。我猜你解密後私鑰就會暴露出來,所以我需要為每個需要這種加密的事件生成一個新的密鑰對嗎?

我從未使用過 CryptoJS 或 Forge 或任何瀏覽器對稱加密,我想知道如何安全地完成它?

你最好的猜測幾乎是正確的。如果您希望合約進行解密,則需要公開您的秘密和私鑰才能這樣做。如果這是可以接受的,您可以為您儲存的每個秘密生成新的密鑰對。

如果您只想儲存秘密並在契約之外對其進行解密,那麼多次使用相同的加密密鑰可能會很好。

正如您所建議的,如果不將密鑰(以及新解密的明文)暴露給世界,您的契約就無法解密。此外,世界其他地方將能夠在您的合約之前看到您的密鑰,因為人們將能夠在它被探勘之前從交易中獲得它。

如果您告訴我們更多關於您想要實現的目標,我們可能會更有幫助。

引用自:https://ethereum.stackexchange.com/questions/15888