小编anc*_*ea4的帖子

io.jsonwebtoken.security.weakkeyexception:验证密钥的大小为 48 位,对于 HS256 算法来说不够安全

我试图从我的 Web 应用程序的 api 中获取一个令牌,并在 android studio 中从中解析出用户 ID。我正在使用 jjwt 解码令牌,但遇到了这个问题。我在网上阅读,解决方案说要确保我的“密钥”在 base 64 中,但它仍然导致问题。

我尝试使用编码器和在线编码器并对我的“秘密”的 base-64 字符串进行硬编码,但仍然返回相同的问题。在这里可以找到指向有类似问题的人的链接 github.com/auth0/node-jsonwebtoken/issues/208

    final TextView tv = (TextView) findViewById(R.id.tvText);

    final String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVjOWYzYWI2NzY2Mjg2NDYyNDY0YTczNCIsIm5hbWUiOiJSYW5keSIsImF2YXRhciI6Ii8vd3d3LmdyYXZhdGFyLmNvbS9hdmF0YXIvMTNhN2MyYzdkOGVkNTNkMDc2MzRkOGNlZWVkZjM0NTE_cz0yMDAmcj1wZyZkPW1tIiwiaWF0IjoxNTU0NTIxNjk1LCJleHAiOjE1NTQ1MjUyOTV9._SxRurShXS-SI3SE11z6nme9EoaD29T_DBFr8Qwngkg";
    final String secret = "secret";
    String secret64 = "c2VjcmV0";

    String encoded = Base64.encodeToString(secret.getBytes(), Base64.DEFAULT);

    Jws<Claims> jws;
    try {
        jws = Jwts.parser()         // (1)

                .setSigningKey(secret64)       // (2)
                .parseClaimsJws(token); // (3)

        // we can safely trust the JWT

    }
    catch (JwtException ex) {       // (4)
        // we *cannot* use the JWT as intended …
Run Code Online (Sandbox Code Playgroud)

java base64 android token jwt

6
推荐指数
1
解决办法
1万
查看次数

将两个大数字加在一起

我有一个存储在数组中的两个大数字(p->数字[50]和q->数字[50]),并以十六进制打印出来

1319df046
111111111
Run Code Online (Sandbox Code Playgroud)

当加在一起时,我以十六进制的形式返回

242af'11'257

但是,显然我的答案"应该"

242af0157

将f和1加在一起时有一个差异,等于17,但是打印11(17是十六进制的11).我不确定为什么我的输出应该是0而不是11

int sum = 0;
int carry = 0;
for(i = 9; i >= 0; i--)
{
    sum = p->numbers[i] + q->numbers[i];

    sum = sum + carry;

    answer[i] = sum;

    carry = sum / 10;

    printf("%x", answer[i]);
}
Run Code Online (Sandbox Code Playgroud)

c struct numbers addition

-1
推荐指数
1
解决办法
550
查看次数

标签 统计

addition ×1

android ×1

base64 ×1

c ×1

java ×1

jwt ×1

numbers ×1

struct ×1

token ×1