当前位置: 首页 > news >正文

自己的网站做防伪码湖南长沙装修公司

自己的网站做防伪码,湖南长沙装修公司,重庆网红打卡景点,wordpress怎么加背景音乐JWT提供了一种非常有趣的方式来表示可以验证和信任的应用程序之间的声明。 我的目标是展示一个小的样本#xff0c;它使用出色的Nimbus JOSE JWT库来生成和验证令牌。 总览 进行介绍的最佳地点之一是这里 。 简而言之#xff0c;要从jwt.io网站的资料中借用#xff0c;声明… JWT提供了一种非常有趣的方式来表示可以验证和信任的应用程序之间的声明。 我的目标是展示一个小的样本它使用出色的Nimbus JOSE JWT库来生成和验证令牌。 总览 进行介绍的最佳地点之一是这里 。 简而言之要从jwt.io网站的资料中借用声明将表示为一个编码的json分为三部分并用点。分隔 header.payload.signature 标头是json其中包含用于对内容进行签名的算法类型在本例中为RSA然后对内容进行url和Base64编码 {alg: RS512 } 负载是一个包含所有声明的json有保留的声明但也允许私有声明 {sub: samplesubject,name: John Doe,iss: sampleissueer,admin: true,exp: 1451849539 } 这里的“ sub”主题“ iss”发布者和“ exp”到期是保留的权利要求而“ name”和“ admin”是私人权利要求。 然后对内容进行Base64Url编码。 最后标头和有效负载一起使用共享密钥或私钥进行签名并且签名经过Base64 url​​编码并使用。分隔符附加到令牌中。 生成密钥对 我的样本是基于RSA的样本因此第一步是生成密钥对。 JWK是一种将密钥存储为JSON表示形式的灵巧方法Nimbus库对此提供了支持 import java.security.KeyPairGenerator import java.security.interfaces.{RSAPrivateKey, RSAPublicKey}import com.google.gson.{GsonBuilder, JsonElement, JsonParser} import com.nimbusds.jose.Algorithm import com.nimbusds.jose.jwk.{JWKSet, KeyUse, RSAKey}object JWKGenerator {def make(keySize: Integer, keyUse: KeyUse, keyAlg: Algorithm, keyId: String) {val generator KeyPairGenerator.getInstance(RSA)generator.initialize(keySize)val kp generator.generateKeyPair()val publicKey kp.getPublic().asInstanceOf[RSAPublicKey]val privateKey kp.getPrivate().asInstanceOf[RSAPrivateKey]new RSAKey.Builder(publicKey).privateKey(privateKey).keyUse(keyUse).algorithm(keyAlg).keyID(keyId).build()}...} 给定这个密钥对可以使用Gson从中生成一个JWK def generateJWKKeypair(rsaKey: RSAKey): JsonElement {val jwkSet new JWKSet(rsaKey)new JsonParser().parse(jwkSet.toJSONObject(false).toJSONString)}def generateJWKJson(rsaKey: RSAKey): String {val jsonElement generateJWKKeypair(rsaKey)val gson new GsonBuilder().setPrettyPrinting().create()gson.toJson(jsonElement)} 一个基于JWK的示例密钥对如下所示 {keys: [{p: 2_Fb6K50ayAsnnQl55pPegE_JNTeAjpDo9HThZPp6daX7Cm2s2fShtWuM8JBv42qelKIrypAAVOedLCM75VoRQ,kty: RSA,q: ye5BeGtkx_9z3V4ImX2Pfljhye7QT2rMhO8chMcCGI4JGMsaDBGUmGz56MHvWIlcqBcYbPXIWORidtMPdzp1wQ,d: gSjAIty6uDAm8ZjEHUU4wsJ8VVSJInk9iR2BSKVAAxJUQUrCVN---DKLr7tCKgWH0zlV0DjGtrfy7pO-5tcurKkK59489mOD4-1kYvnqSZmHC_zF9IrCyZWpOiHnI5VnJEeNwRz7EU8y47NjpUHWIaLl_Qsu6gOiku41Vpb14QE,e: AQAB,use: sig,kid: sample,qi: 0bbcYShpGL4XNhBVrMI8fKUpUw1bWghgoyp4XeZe-EZ-wsc43REE6ZItCe1B3u14RKU2J2G57Mi9f_gGIP_FqQ,dp: O_qF5d4tQUl04YErFQ2vvsW4QoMKR_E7oOEHndXIZExxAaYefK5DayG6b8L5yxMG-nSncZ1D9ximjYvX4z4LQQ,alg: RS512,dq: jCy-eg9i-IrWLZc3NQW6dKTSqFEFffvPWYB7NZjIVa9TlUh4HmSd2Gnd2bu2oKlKDs1pgUnk-AAicgX1uHh2gQ,n: rX0zzOEJOTtv7h39VbRBoLPQ4dRutCiRn5wnd73Z1gF_QBXYkrafKIIvSUcJbMLAozRn6suVXCd8cVivYoq5hkAmcRiy0v7C4VuB1_Fou7HHoi2ISbwlv-kiZwTmXCn9YSHDBVivCwfMI87L2143ZfYUcNxNTxPt9nY6HJrtJQU}] }生成JWT 现在我们有了一个很好的示例密钥对请加载私钥和公钥 import java.time.{LocalDateTime, ZoneOffset} import java.util.Dateimport com.nimbusds.jose._ import com.nimbusds.jose.crypto._ import com.nimbusds.jose.jwk.{JWKSet, RSAKey} import com.nimbusds.jwt.JWTClaimsSet.Builder import com.nimbusds.jwt._object JwtSample {def main(args: Array[String]): Unit {val jwkSet JWKSet.load(JwtSample.getClass.getResource(/sample.json).toURI.toURL)val jwk jwkSet.getKeyByKeyId(sample).asInstanceOf[RSAKey]val publicKey jwk.toRSAPublicKeyval privateKey jwk.toRSAPrivateKey... } 构建有效负载对其进行签名并生成JWT val claimsSetBuilder new Builder().subject(samplesubject).claim(name, John Doe).claim(admin, true).issuer(sampleissueer).expirationTime(Date.from(LocalDateTime.now().plusHours(1).toInstant(ZoneOffset.UTC)))val signer new RSASSASigner(privateKey)val signedJWT: SignedJWT new SignedJWT(new JWSHeader(JWSAlgorithm.RS512),claimsSetBuilder.build())signedJWT.sign(signer)val s signedJWT.serialize() 该JWT的使用者可以读取有效负载并使用公共密钥对其进行验证 val cSignedJWT SignedJWT.parse(s)val verifier new RSASSAVerifier(publicKey)println(cSignedJWT.verify(verifier))println(signedJWT.getJWTClaimsSet().getSubject())结论 该样本完全基于Nimbus JOSE JWT网站上提供的样本如果您有兴趣进一步研究此内容则绝对应参考Nimbus网站。 我的样品在这里 翻译自: https://www.javacodegeeks.com/2016/01/jwt-generating-validating-token-samples.html
http://www.zqtcl.cn/news/727249/

相关文章:

  • 做的比较好的小众网站go 是做网站的吗
  • 手机网站快速建设网站接入支付宝需要网站备案吗
  • 贵州省住房城乡建设厅网站农业营销型网站源码
  • 网站开发使用哪种语言wordpress 免费主机
  • 山东免费网站制作绿色食品网站模板
  • 做搜狗网站优化点广州网站开发人
  • 网站建设违法行为广东seo快速排名
  • 体育彩票网站开发该做哪些步骤深圳网站建设策划方案
  • 金华网站建设电话做网站用虚拟机还是服务器
  • 整容医院网站建设目的顺企网贵阳网站建设
  • 微网站 htmlseo做的好的网站
  • 免费做网站推荐东平网页设计
  • 所有复刻手表网站wordpress 标题简码
  • 云南建设厅建设网站首页网站建设s
  • 网站用户需求报告网站充值怎么做的
  • 找代码的网站有一个网站是做釆购的是什么网
  • 做外贸最好的网站有哪些php网站开发工程师待遇
  • 做推文封面的网站首页>新闻>正文 网站怎么做
  • 黄页推广引流网站企业网站导航菜单
  • 合肥专门做网站的公司广告代理商是什么意思
  • wordpress显示一个类目seo推广
  • 营销型电子商务网站特点如何申请免费空间和域名
  • 网站建设 主要学是么vk汉化网站谁做的
  • 做英文网站费用多少学校网站开发毕业设计
  • 红动中国设计网站官网网页制作的论文
  • 云阳一平米网站建设西安设计工作室推荐
  • 网站长尾关键词优化网页设计定制代理
  • 海东电子商务网站建设运城市网站建设公司
  • 网站建设得要素电子商务网站建设与维护项目五
  • 网站备案无前置审批文件南宁市建设厅网站