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];

相关内容

热门资讯

最新技巧!小白大作战棋牌(透视... 最新技巧!小白大作战棋牌(透视)都是真的有挂(2024已更新)(哔哩哔哩);1、小白大作战棋牌系统规...
带你了解!青龙大厅外挂(透明挂... 带你了解!青龙大厅外挂(透明挂)本来存在有挂(2022已更新)(哔哩哔哩);带你了解!青龙大厅外挂(...
九分钟了解!青龙金花辅助器通用... 九分钟了解!青龙金花辅助器通用版免费,中至赣牌圈外挂,规律教程(有挂秘籍)暗藏猫腻,小编详细说明青龙...
1分钟了解!心悦麻将斗地主有挂... 1分钟了解!心悦麻将斗地主有挂吗,亲友棋牌跑得快有挂吗,AI教程(有挂辅助挂)1、心悦麻将斗地主有挂...
今日科普!乐乐围棋入门辅助器(... 今日科普!乐乐围棋入门辅助器(透视辅助)原来真的有挂(2024已更新)(哔哩哔哩)进入游戏-大厅左侧...
七分钟了解!浙江游戏大厅如何拿... 七分钟了解!浙江游戏大厅如何拿到好牌,赣牌圈小程序怎么开挂,德州教程(有挂辅助)1、浙江游戏大厅如何...
实测交流!开心十三张开挂视频(... 实测交流!开心十三张开挂视频(透视)好像存在有挂(2021已更新)(哔哩哔哩);开心十三张开挂视频是...
4分钟了解!边锋绍兴麻将有挂吗... 4分钟了解!边锋绍兴麻将有挂吗,牌乐门打盾包赢,安装教程(有挂方法)1、进入游戏-大厅左侧-新手福利...
玩家交流!闽游福建麻将有没有挂... 玩家交流!闽游福建麻将有没有挂(透视辅助)其实真的是有挂(2020已更新)(哔哩哔哩);1、操作简单...
六分钟了解!陕麻圈捉老麻怎么能... 六分钟了解!陕麻圈捉老麻怎么能赢,闲乐游戏辅助工具,微扑克教程(有挂秘籍)1、玩家可以在陕麻圈捉老麻...