2016-11-07 69 views
0

使用JWT Java library和生產與RS256算法的道理,我總是與jwt.io調試器無效的簽名。這裏是我的示例代碼中,我試圖使它儘可能簡單,開始與我當前的項目:生成具有RS256和Jwts.builder()標記。signWith()產生無效的簽名

// Create a legitimate RSA public and private key pair: 
    KeyPair kp = RsaProvider.generateKeyPair(); 
    PublicKey publicKey = kp.getPublic(); 
    PrivateKey privateKey = kp.getPrivate(); 

    String jwt = Jwts.builder().setSubject("Joe").signWith(SignatureAlgorithm.RS256, privateKey).compact(); 

此代碼從測試類here啓發。

任何想法我可能會失蹤?

回答

0

jwt.io調試器希望您提供與用於簽署以公鑰文件(PKCS#8)格式編碼的令牌的私鑰相關聯的公鑰。

確保你到底使用格式指定它,一個例子如下:

-----BEGIN PUBLIC KEY----- 
BASE64 DATA 
-----END PUBLIC KEY----- 
+0

確實,我們提供的公共密鑰沿着它給出了一個有效的簽名。 –