我在寫東西needs to do electronic signatures。使用Javascript中的加密PGP私鑰生成PGP密鑰對並對文本進行簽名
有些用戶會像我這樣的怪人,並且已經擁有自己的PGP密鑰。大多數人不會,也不會想安裝或維護它。
作爲一種變通方法解決,我要做到以下幾點:
- 對於使用單獨的「簽約」密碼的用戶創建一個公共/私有密鑰對。
- 當我需要用戶簽名時,爲用戶提供明文,以及其他一些信息,如時間戳和其他引用,並讓他們用我存儲的私鑰簽名。
基本上有兩種方法可以做到這一點(對於沒有自己的PGP密鑰的用戶)。
- 用戶通過SSL向我提交簽名密碼。我生成私鑰密鑰對服務器端,並在需要簽名時臨時解鎖私鑰。我根本不存儲密碼,並且儘快解除了解鎖的私鑰。
- 用戶使用Javascript生成pub/priv鍵。他們寄給我公鑰和加密的私鑰並保存在本地存儲中。當他們需要簽名時,我確定他們的本地存儲有它(如果不是),他們解密並使用JS在本地簽名文本。我從來沒有看到他們的簽名密碼或他們解鎖的私鑰。
無論哪種方式,我也簽署結果w /服務器的密鑰。但我需要那裏有一個用戶獨特的,不可否認的方式讓用戶簽署文本,並讓他們擁有我所維護的PGP密鑰是最簡單的方法。
選項1做起來簡單很多,而且運作良好,足以滿足我的最低需求。
選項2更可信一點,除非我顛覆了JS(我仍然可以這樣做),我無法親自使用它們的權限。
然而,爲了做到這一點,我需要一個JavaScript庫,可以
- 產生酒吧/私法密鑰對
- 解密使用的私鑰
- 標誌的文本與塊私鑰
什麼庫可以做到這一點?
P.S.請注意,我不需要加密給定的公鑰。我需要用戶以標記與他們自己的(加密 - 存儲)密鑰。