首页 > 其他分享 >JWT的一种实现

JWT的一种实现

时间:2024-08-26 20:25:33浏览次数:10  
标签:String b64 实现 JWT 一种 Base64UrlSafeString var GetBytes

网上看到的JWT的一种实现。

        // c# Hmacsha256
        protected String HMacSha256Hash(String key, String message)
        {
            var keyBytes = Encoding.UTF8.GetBytes(key);
            using (var hmacsha256 = new HMACSHA256(keyBytes))
            {
                var buffer = hmacsha256.ComputeHash(Encoding.UTF8.GetBytes(message));
                var b64 = Base64UrlSafeString(buffer);
                return b64;
            }
        }
        
        protected String Base64UrlSafeString(Byte[] bytes)
        {
            var b64 = Convert.ToBase64String(bytes);
            return b64.Replace("=", "").Replace("+", "-").Replace("/", "_");
        }
        
        // c# jwt 
        public void testJWT()
        {
            String secret = "eerp";
            String header = "{\"type\":\"JWT\",\"alg\":\"HS256\"}";
            String claim = "{\"iss\":\"cnooc\", \"sub\":\"yrm\", \"username\":\"yrm\", \"admin\":true}";
        
            var encoding = Encoding.UTF8;
            var base64Header = Base64UrlSafeString(encoding.GetBytes(header));
            var base64Claim = Base64UrlSafeString(encoding.GetBytes(claim));
            var signature = HMacSha256Hash(secret, base64Header + "." + base64Claim);
        
            var jwt = base64Header + "." + base64Claim + "." + signature;
            Console.WriteLine(jwt);
        
        }

 

翻译

搜索

复制

标签:String,b64,实现,JWT,一种,Base64UrlSafeString,var,GetBytes
From: https://www.cnblogs.com/fabao/p/18381547

相关文章

  • C++实现的数独游戏
    数独游戏是什么数独(Sudoku)是一种基于数字的逻辑推理游戏,起源于18世纪的瑞士数学家莱昂哈德·欧拉(LeonhardEuler)的拉丁方阵,但现代数独的规则由美国架桥杂志在20世纪后半叶所推广,随后在日本得到了广泛流行,并被命名为“数独”(意为“数字独立”)。如今,数独已经成为一种在世界各......
  • vue 实现简单AI聊天程序(一) elementui 聊天框编写
    这个系列的目标是开发一个AI聊天前端界面+后端问答程序,探索前端界面开发。尝试后端对接阿里云千问大模型,后续还会更新自己部署的大模型。这一期用elmentui来开发一个聊天框的前端,根据用户发送的内容,AI会返回一个一模一样的内容,在纯前端模拟聊天的效果。同时界面可以自适......
  • 基于Java+SpringBoot+Mysql实现高校教务信息系统功能设计与实现二
    一、前言介绍:1.1项目摘要高校教务信息系统课题的提出,主要源于高校日常管理工作的复杂性和重要性。作为高校的基本任务,人才培养离不开教学与管理工作的有效组织和协调。教务管理作为高校日常管理的核心组成部分,涉及教学资源的合理配置、教学过程的科学规划以及教学质量的......
  • 基于Java+SpringBoot+Mysql实现高校教务信息系统功能设计与实现三
    一、前言介绍:1.1项目摘要高校教务信息系统课题的提出,主要源于高校日常管理工作的复杂性和重要性。作为高校的基本任务,人才培养离不开教学与管理工作的有效组织和协调。教务管理作为高校日常管理的核心组成部分,涉及教学资源的合理配置、教学过程的科学规划以及教学质量的......
  • 【综合评价方法】常见综合评价方法及其实现
    @目录1.数据预处理1.1区分指标的属性1.2指标正向化1.2.1负向指标1.2.2中间指标1.2.3区间指标1.3标准化1.3.1Z-score标准化1.3.2Min-max标准化1.3.3Robust标准化1.3.4归一化2.模糊评价法(主观)(notrecommended)3.层次分析法(主观)(notrecommended)4.PCA主成分分析法(客观......
  • 【两栈共享空间】------一种特殊的顺序栈
    前言:虽然顺序栈的存储已经十分方便,但是它有一个非常致命的缺陷:即必须事先确定数组存储空间的大小,万一不够用就需要动态扩容但对于两个相同类型的栈,我们可以做到最大限度的利用其事先开辟的存储空间,既让两栈共享空间1.共享栈的定义两个栈共享同一个存储空间,这片空间不单......
  • java在项目中实现个性化定制的数据可视化图表———静态,动态获取数据
    一、Echarts介绍ECharts是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。ECharts最初由百度团队开源,并于2018年初捐赠给Apache基金会,成为ASF孵化级项目。2021年1月26日晚,Apache基金会官方宣布ECharts项目正式毕业。1月28日,EChar......
  • Python实现局部线性嵌入(LLE)降维算法
    目录Python实现局部线性嵌入(LLE)降维算法的博客引言LLE算法原理1.确定邻域2.线性重构3.降维映射Python中的LLE实现1.创建LLE类2.实现瑞士卷数据集的LLE降维3.结果分析总结Python实现局部线性嵌入(LLE)降维算法的博客引言随着数据维度的增加,高维数据的分......
  • Python实现核主成分分析(KPCA)降维算法
    目录Python实现核主成分分析(KPCA)降维算法的博客引言KPCA算法原理1.核函数与核技巧2.中心化核矩阵3.特征分解Python中的KPCA实现1.创建KPCA类2.在瑞士卷数据集上应用KPCA3.结果分析总结Python实现核主成分分析(KPCA)降维算法的博客引言在高维数据分析中,主成......
  • Typora 上传到 Github 实现笔记同步管理
    首先在Github上new一个repository,我建的名称是md_notes然后在本地terminal中启动以下命令新建一个sshkey  ssh-keygen-o  生成的publickey就是我们需要的东西,接着再输入catC:\Users\ASUS/.ssh/id_rsa.pub就能获取到生成的密钥复制生成的密钥(两个......