ASP.NETCore5-DecodinganAES-GCM-256JWE
创始人
2024-09-17 10:30:43
0
  1. 导入 Microsoft.AspNetCore.DataProtection 和 System.Security.Cryptography.Algorithms 两个命名空间模块。

  2. 定义一个JweToken类,用于存储解析后的令牌信息。

  3. 创建一个对称密钥,并使用该密钥加密待加密的明文。

  4. 使用JweToken类的静态方法Parse对加密后的密文进行解析,并获取解密后的数据。

  5. 获取解包后的明文数据,并对其进行相关处理。

  6. 最后输出解密后的明文数据。

以下是完整的代码示例:

using System; using System.Security.Cryptography; using Microsoft.AspNetCore.DataProtection; using System.Security.Cryptography.Algorithms;

namespace JWEExample { public class JweToken { public string Header { get; set; } public string EncryptedKey { get; set; } public string InitializationVector { get; set; } public string CipherText { get; set; } public string AuthenticationTag { get; set; }

    public static byte[] Decrypt(string key, JweToken token)
    {
        using (var provider = new AesGcm(key.ToByteArray()))
        {
            var cipherText = token.CipherText.ToByteArray();
            var iv = token.InitializationVector.ToByteArray();
            var tag = token.AuthenticationTag.ToByteArray();
            var aad = token.Header.ToByteArray(); 
            return provider.Decrypt(iv, cipherText, tag, aad); 
        }
    }

    public static JweToken Parse(string tokenString)
    {
        var parts = tokenString.Split('.');
        if (parts.Length != 5) 
        {
            throw new ArgumentException("Invalid Jwt token parts count");
        }
        return new JweToken 
        {
            Header = parts[0], 
            EncryptedKey = parts[1], 
            InitializationVector = parts[2], 
            CipherText = parts[3], 
            AuthenticationTag = parts[4]
        };
    }
}

class Program
{
    static void Main(string[] args)
    {
        // 1. 定义明文数据和加密密钥
        var plaintext = "Hello World!";
        var key = "MyAwesomeKey";

        // 2. 创建对称加密密钥
        var keyGenerator = new Rfc2898DeriveBytes(key, saltBytes, iterations);
        var aesKey = keyGenerator.GetBytes(256 / 8);

        // 3. 加密明文数据
        var aesGcm = new AesGcm(aesKey);
        var nonce = new byte[12];

相关内容

热门资讯

记者揭秘!智星菠萝辅助(透视辅... 记者揭秘!智星菠萝辅助(透视辅助)拱趴大菠萝辅助神器,扑克教程(有挂细节);模式供您选择,了解更新找...
一分钟揭秘!约局吧能能开挂(透... 一分钟揭秘!约局吧能能开挂(透视辅助)hhpoker辅助靠谱,2024新版教程(有挂教学);约局吧能...
透视辅助!wepoker模拟器... 透视辅助!wepoker模拟器哪个好用(脚本)hhpoker辅助挂是真的,科技教程(有挂技巧);囊括...
透视代打!hhpkoer辅助器... 透视代打!hhpkoer辅助器视频(辅助挂)pokemmo脚本辅助,2024新版教程(有挂教程);风...
透视了解!约局吧德州真的有透视... 透视了解!约局吧德州真的有透视挂(透视脚本)德州局HHpoker透视脚本,必胜教程(有挂分析);亲,...
六分钟了解!wepoker挂底... 六分钟了解!wepoker挂底牌(透视)德普之星开辅助,详细教程(有挂解密);德普之星开辅助是一种具...
9分钟了解!wpk私人辅助(透... 9分钟了解!wpk私人辅助(透视)hhpoker德州透视,插件教程(有挂教学);风靡全球的特色经典游...
推荐一款!wepoker究竟有... 推荐一款!wepoker究竟有透视(脚本)哈糖大菠萝开挂,介绍教程(有挂技术);囊括全国各种wepo...
每日必备!wepoker有人用... 每日必备!wepoker有人用过(脚本)wpk有那种辅助,线上教程(有挂规律);wepoker有人用...
玩家必备教程!wejoker私... 玩家必备教程!wejoker私人辅助软件(脚本)哈糖大菠萝可以开挂,可靠技巧(有挂神器)申哈糖大菠萝...