簡體   English   中英

使用字符串生成公鑰和私鑰

[英]Generate public and private key using a string

在Java中,我想基於我的應用程序中的字符串生成公鑰和私鑰。

我不是為了安全,我要去“我可以使用這個字符串生成相同的公鑰和私鑰”。

我該怎么辦?

我在看這些方法:

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA", "SUN");
SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");
keyGen.initialize(1024, random);

但我想用自己的字符串為密鑰對生成器播種,理想情況下,這些算法會對其進行哈希處理。 KeyGen只接受SecureRandom對象。 無論何時我傳遞該字符串,我都想要相同的結果密鑰對。

初始化random后嘗試添加以下行:

random.setSeed(myString.hasCode())

在一次執行程序期間,給定相同的字符串,字符串的哈希碼值將始終相同,並且認為不太可能找到具有相同哈希碼的兩個字符串。

如果你想要生成一個在程序的多次執行期間保證相同的哈希,或者如果你想確定找到兩個生成相同哈希的String是不可行的,那么嘗試使用MessageDigest而不是String.hashCode() 像這樣:

MessageDigest md = MessageDigest.getInstance("SHA-256");
random.setSeed(md.digest(myString.getBytes())

另請注意,每次String必須始終具有相同的字符編碼,以便生成相同的MessageDigest值以及公鑰和私鑰對。

暫無
暫無

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

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