Javascript
安全地將對稱加密數據發送給合約?
嘿,我想知道將加密數據發送到契約的最佳技術是什麼,以後可以由初始使用者或契約本身解密,但不能由其他任何人解密。
我現在最好的猜測是使用 CryptoJS/Forge 創建一個密鑰對並使用公鑰對其進行加密,然後安全地保存私鑰直到消息準備好被解密。我猜你解密後私鑰就會暴露出來,所以我需要為每個需要這種加密的事件生成一個新的密鑰對嗎?
我從未使用過 CryptoJS 或 Forge 或任何瀏覽器對稱加密,我想知道如何安全地完成它?
你最好的猜測幾乎是正確的。如果您希望合約進行解密,則需要公開您的秘密和私鑰才能這樣做。如果這是可以接受的,您可以為您儲存的每個秘密生成新的密鑰對。
如果您只想儲存秘密並在契約之外對其進行解密,那麼多次使用相同的加密密鑰可能會很好。
正如您所建議的,如果不將密鑰(以及新解密的明文)暴露給世界,您的契約就無法解密。此外,世界其他地方將能夠在您的合約之前看到您的密鑰,因為人們將能夠在它被探勘之前從交易中獲得它。
如果您告訴我們更多關於您想要實現的目標,我們可能會更有幫助。