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

php网站栏目 添加和删除网站ftp

php网站栏目 添加和删除,网站ftp,总部基地网站建设,东莞公司建设网站jwt令牌当您使用JSON Web令牌 #xff08; JWT #xff09;或需要对有效载荷信息进行签名或加密的任何其他令牌技术时#xff0c;设置令牌的到期日期很重要#xff0c;因此#xff0c;如果令牌到期#xff0c;则可以假定这可能被视为安全漏洞#xff0c;您拒绝使用此令牌… jwt令牌 当您使用JSON Web令牌 JWT 或需要对有效载荷信息进行签名或加密的任何其他令牌技术时设置令牌的到期日期很重要因此如果令牌到期则可以假定这可能被视为安全漏洞您拒绝使用此令牌进行任何通信或者您决定通过使用新的到期日期更新令牌来启用该令牌。 但是使用某种秘密轮换算法也很重要因此用于签名或加密令牌的秘密会定期更新因此如果该秘密受到威胁则此密钥泄漏的令牌会更少。 同样您也可以减少机密被破解的可能性。 有几种策略可以实现这一目的但是在这篇文章中我将解释我如何在几年前开发的一个项目中实现秘密轮换 具有HMAC算法的JWT令牌。 我将展示如何在Java中创建JWT令牌。 try {Algorithm algorithm Algorithm.HMAC256(secret);String token JWT.create().withIssuer(auth0).sign(algorithm);} catch (UnsupportedEncodingException exception){//UTF-8 encoding not supported } catch (JWTCreationException exception){//Invalid Signing configuration / Couldnt convert Claims. } 请注意这里您需要做的是创建一个算法对象设置HMAC算法并设置用于签署和验证实例的密钥。 因此我们需要每X分钟旋转一次该算法实例因此破解密码的机率以及破解的密码仍然有效的机率变得非常低。 那么如何旋转秘密呢 好吧通过一个非常简单的算法每个人即使您不是加密专家也可以理解。 只是浪费时间。 因此要生成秘密您需要一个字符串在上一个示例中它是秘密字符串当然它并不是那么安全所以我们的想法是通过根我们称之为“大爆炸”部分来组成这个秘密字符串兼职。 总之秘密是bigbang timeInMilliseconds Bing bang部分没有任何奥秘它只是一个静态部分例如my_super_secret 。 有趣的部分是时间部分。 假设您想每秒更新一次秘密。 您只需要这样做 long t System.currentTimeMillis();System.out.println(t); System.out.println((t/1000)*1000);TimeUnit.MILLISECONDS.sleep(50);t System.currentTimeMillis(); System.out.println((t/1000)*1000); 我只是将0设置为毫秒部分所以如果运行此命令我将得到类似以下内容 1515091335543 1515091335500 1515091335500 请注意尽管在第二和第三次打印之间已经过了50毫秒但时间部分是完全相同的。 在同一秒内将是相同的。 当然这是一个极端的示例其中秘密每秒钟更改一次但其想法是您删除要忽略的部分时间并用0填充。 因此首先您要除以时间然后再乘以相同的数字。 例如假设您想每10分钟旋转一次秘密您只需要除以600000就可以了。 这种方法有两个问题可以解决尽管其中一个并不是很大的问题。 第一个是因为如果您想每分钟更改一次机密则您要缩短时间例如第一次计算是在一分钟的中间进行的因此对于这种初始情况轮换将在30秒后发生并且不是1分钟。 这不是一个大问题在我们的项目中我们没有做任何修复。 第二个是在秘密轮换之前签名的令牌的情况它们仍然有效您还需要能够验证它们而不是使用新的秘密而要使用之前的一个。 为了解决这个问题我们要做的是创建一个有效窗口其中还保留了先前的有效机密。 因此当系统收到令牌时将使用当前机密验证该令牌如果该令牌通过则我们可以进行其他任何检查并使用它如果未通过则令牌将由先前的机密验证。 如果通过则重新创建令牌并使用新的秘密对其进行签名如果未通过则显然此令牌无效必须拒绝。 要为JWT创建算法对象您只需执行以下操作 long currentTime System.currentTimeMillis();try {return Algorithm.HMAC256(my_big_bang (currentTime/60000)*60000); } catch (UnsupportedEncodingException e) {throw new IllegalArgumentException(e); } 我真正喜欢这种解决方案的地方是 它很干净系统上不需要额外的元素。 不需要异步运行的触发线程来更新密码。 它确实性能很高您无需访问外部系统。 测试服务真的很容易。 验证过程负责旋转机密。 扩展确实很容易实际上您无需执行任何操作可以添加同一服务的越来越多的实例并且所有实例都将同时旋转秘密并且所有实例都将使用同样的秘密因此轮换过程实际上是无状态的您可以按比例放大或缩小实例所有实例将继续能够验证其他实例签名的令牌。 但是当然有一些缺点 您仍然需要以安全的方式向每个服务共享机密的一部分大爆炸部分。 也许使用Kubernetes机密Hashicorp的Vault或者如果您不使用微服务则可以将文件复制到具体位置并在服务启动和运行时阅读大爆炸部分然后将其删除。 如果您的物理服务器位于不同的时区则使用此方法可能会遇到更多问题。 另外您需要使服务器或多或少同步。 由于您要存储以前的令牌和当前令牌因此不必在同一秒内同步它们并且几秒钟的延迟仍然可能没有问题。 因此我们已经看到了一种非常简单的秘密轮换方式可以使令牌更安全。 当然还有其他方法可以做到这一点。 在这篇文章中我只是解释了我是如何在三年前开发的整体应用程序中做到这一点的它确实运行良好。 我们不断学习 亚历克斯 翻译自: https://www.javacodegeeks.com/2018/01/secret-rotation-jwt-tokens.htmljwt令牌
http://www.pierceye.com/news/714878/

相关文章:

  • 网站策划方案ppt站长查询域名
  • 网站开发需要哪些流程wordpress 添加widget
  • 在线报名网站建设汉字logo设计生成器
  • 移动网站和桌面网站区别烟台网站设计制作公司电话
  • 遵义网站建设网站定制wordpress主题多少钱
  • 外贸网站如何做推广是什么意思长沙制作公园仿竹护栏多少钱一米
  • seo网站有优化培训吗小程序商城开发华网天下优秀
  • 无锡品牌网站建设介绍网络营销是不是网络推广
  • 旅游网站建设论文题目商用图片的网站
  • 做网页专题 应该关注哪些网站网页版梦幻西游吸血鬼怎么过
  • gwt 网站开发深圳公司形象墙制作
  • 自己做的网站别人打不开大连网站建设方案维护
  • 卖高仿名牌手表网站两学一做网站飘窗
  • 企业网站备案资料样本购卡网页怎么制作
  • 什么网站能免费做简历ui设计师是什么意思
  • 天津网站推广公司哪家好深圳公司注册流程及资料
  • 家装网站建设哪家好点赣州市南康建设局网站
  • 北京建设网站制作我国外贸网站的建设
  • 自己做网站如何赚钱excel做网站
  • 芯片商城网站建设wordpress批量替换图片路径
  • 网站添加手机站软件 项目管理系统
  • 大理装饰公司做网站网站建设费用:做个网站要多少钱?
  • 简约的网站设计界面百度收录网站左侧图片
  • 对建设网站未来发展的建议教育 网站模板
  • 做篮球网站用的背景图广州黄埔做网站的公司
  • 爱客源seo怎么刷关键词排名
  • 自己做网站网页文件在哪里公司官网定制
  • 网站建设怎么样工作室哪个网站可以免费制作h5
  • 做网站学的是代码吗机器封所有端口 不支持做网站
  • 类似于美团的网站开发两学一做网站专栏怎么设置