我遇到了这个问题,真的不知道如何解决,有人可以帮助您提供有效的解决方案吗?
func GenerateJWT(name, role string) (string, error) {
//create a singner for rsa 256
claims := &jwt.StandardClaims{
ExpiresAt: 15000,
Issuer: "test",
}
token :=jwt.NewWithClaims(jwt.SigningMethodES256, claims)
log.Println("generated toke is ")
log.Println(token)
tokenString, err := token.SignedString([]byte("secret"))
....
}
现在我总是有:
密钥类型无效
错误。我在Google上搜索了很多东西,甚至对于jwt-go
图书馆本身,他们也提供了完全相同的解决方案,但是为什么我一直拥有
密钥类型无效
错误?
谁能提供有关如何生成jwt
令牌的有效示例go
?
从自述文件:
ECDSA签名方法(ES256,ES384,ES512)期望 ecdsa.PrivateKey进行签名,而 ecdsa.PublicKey进行验证
因此,使用椭圆曲线键:
package main
import (
"crypto/ecdsa"
"crypto/elliptic"
"crypto/rand"
"log"
jwt "github.com/dgrijalva/jwt-go"
)
func main() {
key, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
if err != nil {
log.Fatal(err)
}
claims := &jwt.StandardClaims{
ExpiresAt: 15000,
Issuer: "test",
}
token := jwt.NewWithClaims(jwt.SigningMethodES256, claims)
tokenString, err := token.SignedString(key)
if err != nil {
log.Fatal(err)
}
log.Println(tokenString)
}
要存储生成的密钥以供以后与jwt.ParseECPrivateKeyFromPEM和jwt.ParseECPublicKeyFromPEM一起使用:
import (
"crypto/ecdsa"
"crypto/x509"
"encoding/pem"
)
func pemKeyPair(key *ecdsa.PrivateKey) (privKeyPEM []byte, pubKeyPEM []byte, err error) {
der, err := x509.MarshalECPrivateKey(key)
if err != nil {
return nil, nil, err
}
privKeyPEM = pem.EncodeToMemory(&pem.Block{
Type: "EC PRIVATE KEY",
Bytes: der,
})
der, err = x509.MarshalPKIXPublicKey(key.Public())
if err != nil {
return nil, nil, err
}
pubKeyPEM = pem.EncodeToMemory(&pem.Block{
Type: "EC PUBLIC KEY",
Bytes: der,
})
return
}
我试图为某些设备生成密钥时出错。我能够在运行4.4.2的三星Galaxy Note上重现错误。 我创建了一个小应用程序,只能通过从Android开发者页面“生成新私钥”下的https://developer.android.com/training/articles/keystore.html逐行复制代码来生成密钥 错误似乎发生在kpg.generateKeyPair(),在Android Key
我试图测试我正在构建的一个关于JWT的软件的功能,以了解它,它使用Firebase JWT PHP包 我正在尝试创建一个使用密钥对作为编码/解码的测试用例,但无法获得http://jwt.io页面以使用我的密钥创建令牌。 这些是我使用命令创建的密钥,没有任何修改。 我转到页面,选择HS256/384/512并删除页面默认设置的键。然后我粘贴我的私钥以便对我的数据进行签名。但是,该页面不会生成任何J
我知道RSA密钥可以使用不同的算法生成。使用,我似乎无法指定密钥生成器应该使用什么算法。我怀疑它使用的是。 如何在bashshell或Ruby中使用不同的算法(例如)生成RSA密钥?库是否支持使用不同的算法生成RSA密钥?如果没有,有人知道我可以使用另一个图书馆吗?(在ruby中,似乎不允许选择算法,但文档对我来说很难遵循soo…?) 很抱歉,如果这个问题已经得到了回答,但我还没有找到答案。 也许
问题内容: 此代码给出了无效的AES密钥长度错误。我该如何纠正?(我想要128位密钥AES加密) 任何帮助表示赞赏 问题答案: 使用a 从密码派生密钥字节。您可以在此处查看详细示例。请注意,您需要指定128位密钥的密钥长度,而不是该示例中所示的256位。 您将遇到的下一个问题是您没有指定填充方案。除非您的消息是16字节(AES块大小)的倍数,否则将引发错误。如示例所示,使用PKCS5Padding
鉴于: 由RSACryptoServiceProvider生成的签名密钥。 创建带有孩子的签名jwt的需求。 如果签名密钥来自x509证书,那么我会将kid设置为x5t。在这种情况下,情况并非如此。我可以为孩子编造一些武断的东西,但是如果碰撞不太可能发生,并且孩子和证书之间存在有意义的联系,那就最好了。 我的意图是:- 创建一个字节数组,通过将模字节附加到指数字节来创建。 SHA256编码数组。
我试图对他们的新v2 api进行基本的身份验证api调用,并返回一个无效的api密钥错误。 我重新发布api密钥只是为了验证,同样的错误。 如何对bitfinex的新v2 api进行身份验证api调用?