【问题标题】:How to import backend exported public key in frontend如何在前端导入后端导出的公钥
【发布时间】:2023-02-22 18:32:48
【问题描述】:

您好,我正在尝试在我的 flutter 应用程序中导入从服务器生成的 jwk

var signeature =
    JsonWebSignature.fromCompactSerialization(response.body);
var payload = signeature.unverifiedPayload;
Map<String, dynamic> key = jsonDecode(payload.jsonContent["jwk"]);
PublicKey rsakey = RsaPublicKey(e: key['e'], n: key['n']);
Jwk jwk = Jwk.fromPublicKey(rsakey);

问题是RsaPublicKey需要en作为List&lt;int&gt;,但我的钥匙没有List&lt;int&gt;

{additionalData: {}, alg: null, crv: null, d: null, dp: null, dq: null, e: AQAB, k: null, keyId: null, keyOps: [], kid: null, kty: RSA, n: rnuxgDk-9cWCeehBWotGz2YkXpu6_0wPVlVkip1EHUdpWXpX4vAvOeclNIrEYzMOrBIUvwLptk-FMsOgpdvxjWtHFfanv60xsTLAV6ZXMO-R2Ojzgpv4izFvyduC2MihkoMBL_evo9JltMfX2ZSXIwwZoqPed2v9GI9aIjhhKZqju-anVjt3n6dHxlLyduaoatZbD7tzjo-bPeO8o1rycBQFCncgdQ9ST3C6CmZYOUpCFF9ojb4vZtvmIcbtl9Hyud9dOViufE1vPrpJq0ZjeR_ovtApfaQKsi3YJhn77Uwg_XxzgE-SPq960skNwd0IFpyiuxcOvRRIvL6N_-FCdw, oth: null, p: null, q: null, qi: null, use: null, x: null, x5c: [], x5t: null, x5tS256: null, x5u: null, y: null, keySize: 2048, hasPrivateKey: false, cryptoProviderFactory: {cryptoProviderCache: {}, customCryptoProvider: null, cacheSignatureProviders: true, signatureProviderObjectPoolCacheSize: 4}}

是否可以将en 转换为List&lt;int&gt;

我尝试使用其他定义的 PublicKey 但在导入时它要求 bigint 而不是 list 但我仍然不知道如何将它转换为 bigint

【问题讨论】:

    标签: json dart jwt rsa jwk


    【解决方案1】:

    en 是 base 64 url​​ 安全编码。您可以安全地将这些值从 base 64 转换为 base 10。

    • e: base64(AQAB) <=> base10(65537)
    • n: base64(rnuxgDk-9cWCeehBWotGz2Yk[...]N_-FCdw) <=> base10(3524233685557009967[...]305551728)

    注意:我使用 https://math.tools/calculator/base/64-10 进行这些转换

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-25
      • 2018-01-19
      • 2015-10-28
      • 2018-01-05
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      相关资源
      最近更新 更多