0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MCGS用户程序云端授权系统设计

jf_10471008 来源:jf_10471008 作者:jf_10471008 2022-11-08 12:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

MCGS用户程序云端授权系统设计

基于HTTP请求通过外接串口服务器实现MCGS组态屏(TPC7062Ti)云端授权系统搭建,重点讲解如何实现系统对时(基于UDP协议的NTP对时协议)、加密算法的选择、加密算法的设计与实现。

算法实现

MCGS组态屏授权管理可以通过“开发平台”内置的“用户权限管理”,这种方式基本属于一次配置授权永久有效,而现在介绍的这种授权方式可以利用云平台修改设备授权状态,实现更加可控的设备管理。

通过MCGS实现云端授权有几个难点,如何将MCGS组态屏接入互联网,如何连接管理服务器,如何进行数据加密与解密,如何获取当前时间戳(非MCGS时间戳)等困难。

1.接入互联网

“接入互联网”可以使用市场上常见的串口转4G串口服务器、串口转WIFI串口服务器、串口转以太网串口服务器设备实现,其中串口转4G对于需要移动的应用场景有着不可替代性,但这种方式存在流量费用。一般来说MCGS组态屏应用于固定环境,此时可以采用串口转WIFI串口服务器或者串口转以太网串口服务器,WIFI相对于以太网稳定性较差且易受干扰,接下来小编就采用MCGS组态屏连接串口转以太网的NA111串口服务器实现设备上网。

2.连接管理服务器

“连接管理服务器”为了方便我就直接采用OneNET的HTTP服务器实现,应用场景并不复杂,只需要定义一个字符型变量,并且可以通过“GETPOST”请求或修改变量就行。

3.获取时间戳

“获取当前时间戳”可以通过串口服务器NA111连接NTP服务器通过NTP协议获取准确时间戳,这里我就通过中国国家授时中心(ntp.ntsc.ac.cn:123)的NTP服务器获取时间。

【注】网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议。

数据加密

这几个难点中最难的是如何对数据进行加密,利用MCGS脚本开发进行数据的加密与解密是比较困难,若一个加密不能被该理解的设备所理解这样的加密是没有意义的,而MCGS并不支持使用加密库函数导致加密解密都需要从原理自行封装脚本,导致不能使用运算过于复杂的算法,常见的加密算法有对称加密和非对称加密和散列算法,接下来分析哪个算法适合MCGS脚本加密,先从安全级别较高的非对称加密分析。

1.非对称加密

非对称加密算法,又称为公开密钥加密算法。它需要两个密钥,一个称为公开密钥(public key),即公钥,另一个称为私有密钥 (private key),即私钥,常见的非对称加密算法有RSA、ECC等,他们都有运算复杂且非常消耗MCU的算力,并不适用于组态屏的加密。

共享密钥加密算法。在对称加密算法中,使用的密钥只有一个,发送和接收双方都使用这个密钥对数据进行加密和解密。这就要求加密和解密方事先都必须知道加密的密钥。

2.散列算法

散列算法,常见的有MD5、CRC16、SHA1等,严格来说他们不能算作加密算法而是摘要算法,他们加密的结果是不可逆的,常被用于文件完整性以及数字签名等场景。

3.对称加密

现在就只剩下了对称加密,AES、DES、3DES等都属于对称加密,对称加密结果是可逆的,算法可以简单可以复杂,对于笔者来说,使用组态屏的脚本程序实现AES、DES、3DES仍有些困难,并且写这样脚本有点违背使用MCGS的初衷(开发简单),MCGS的加密脚本就只能使用对称加密的思想来实现。

上述这么多的算法留着给那些有兴趣,并且熟悉MCGS脚本开发的人自行探索,笔者这里就是用密码本加密,为了方便前端开发,就使用Base64编码表再结合Base64格式化文本实现数据加密,若认为这样的算法不可靠,可以对明文进行“加”“减”进一步加密,不建议使用“乘”“除”“与”“或”“非”“异或”这些可能导致数据不可逆的算法,这里就不再额外加密明文。

使用Base64就需要了解Base64,Base64算法很简单只需要把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'=',使用MCGS脚本实现这一操作也不算简单但可以实现,先将Base64编码表使用字符串变量一一存储,比如将base64_list的初值赋予“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”,也可以自定义密码本(每个字符都必须唯一对应)对应的加密时也需要使用对于密码本加密,上述字符串顺序不可乱,乱了就是不再是Base64编码表。

MCGS加密过程讲解

通过!InStr(1,base64_list,”M”)查找加密字符的码值,解出的码值使用!I2Bin(s)转换为二进制字符(不足6字节前面填零),再通过字符串拼接合成原始二进制字符串,将“=”忽略不转换(因为Base64把三个字节分成四个字节,不足3个字节,则用0填充,输出字符使用'='),使用!Mid(str,1,8)和!Bin2I(s)转换为ASCII码值,在使用!I2Ascii(s)转换为ASCII字符,拼接这些字符串就可以得到明文。

解决了怎么加密,现在需要考虑对什么数据进行加密,这取决于我们要实现怎样的授权系统,比如,实现云端修改账户模式,这样就需要预先定义模式对应码值表(9573-长期授权,6685-授权1天等等),为了保证码值的安全甚至可使用当前时间对码值进行保护,实现动态密钥。或者利用云端设置有效时间,也就是需要对结束时间的时间戳进行加密。

本文仅探讨算法和实现方法,有时间再讲解算法的实现。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    14

    文章

    10496

    浏览量

    91976
  • MCGS
    +关注

    关注

    11

    文章

    94

    浏览量

    36962
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AI语音助手:助力锁具授权

    近年来,AI技术迅猛发展,各类AI应用软件层出不穷。为提升锁具授权效率,我司正致力于将AI技术融入智能锁具管理软件(微信小程序版)。现状当前,好视角智能锁具的授权流程依赖人工手动操作。工作人员需
    的头像 发表于 05-13 11:02 420次阅读
    AI语音助手:助力锁具<b class='flag-5'>授权</b>

    云端数据高效处理:方法与系统全解析

    引言:数据爆炸时代的计算革命我们正处于一个数据指数级增长的时代。从物联网设备每秒产生的传感器数据,到互联网用户的浏览行为,再到企业业务系统的交易记录,全球数据量正以每年约25%的速度增长。传统
    的头像 发表于 04-09 15:54 440次阅读
    <b class='flag-5'>云端</b>数据高效处理:方法与<b class='flag-5'>系统</b>全解析

    基于Modbus TCP/IP的MCGS与汇川H5U PLC远程无线监控方案

    本方案聚焦于MCGS触摸屏与汇川H5U PLC之间的无线以太网通信架构,基于ModbusTCP/IP协议,构建稳定可靠的自组网无线传输通道。通过引入达泰日系PLC无线通讯终端DTD419MB作为核心硬件,实现无需布线的即插即用式连接,为智能制造车间提供一套经济实用、快速落地的无线通讯解决方案。
    的头像 发表于 03-28 15:12 772次阅读
    基于Modbus TCP/IP的<b class='flag-5'>MCGS</b>与汇川H5U PLC远程无线监控方案

    欧姆龙 CP1H PLC 借助以太网模块与上位机编程软件通讯实现 MCGS 触摸屏监控的激光切割应用配置案例

    通过本地操作面板控制设备,配套的MCGS触摸屏也无法实现远程数据交互与监控,激光切割的切割速度、功率、板材定位精度等关键数据无法实时采集上传,上位机也无法直接对PLC进行程序调试和参数修改。管理人员难以远程掌握设备运行状态,切割工
    的头像 发表于 03-24 14:44 484次阅读
    欧姆龙 CP1H PLC 借助以太网模块与上位机编程软件通讯实现 <b class='flag-5'>MCGS</b> 触摸屏监控的激光切割应用配置案例

    启明云端正式亮相乐鑫科技官网授权代理商名录

    近日,物联网芯片领域的领导者——乐鑫科技(Espressif),在其官方网站的“联系经销商”核心页面中,正式列入了深圳市启明云端科技有限公司的详细信息。对于启明云端而言,这不仅是一份荣誉,更是一份
    的头像 发表于 12-10 18:03 1225次阅读
    启明<b class='flag-5'>云端</b>正式亮相乐鑫科技官网<b class='flag-5'>授权</b>代理商名录

    探索操作系统底层的关键接口

      在linux中,将程序的运行空间分为内核空间与用户空间(内核态和用户态),在逻辑上它们之间是相互隔离的,因此用户程序不能访问内核数据,也
    的头像 发表于 11-08 12:42 961次阅读

    深入了解系统调用API:探索操作系统底层的关键接口

    一、前言 为什么用户程序不能直接访问系统内核模式提供的服务? 在linux中,将程序的运行空间分为内核空间与用户空间(内核态和
    的头像 发表于 11-03 09:20 1000次阅读

    电能质量在线监测装置的数据在云端的访问权限是如何管控的?

    电能质量在线监测装置的数据在云端的访问权限管控,是通过 角色分级、动态验证、加密隔离、智能策略 等多重机制构建的立体化防护体系,其核心目标是确保数据 “只能被授权的人、在授权的时间、以授权
    的头像 发表于 10-30 09:45 480次阅读

    Vicor拓展与深化其知识产权授权业务

    Vicor 公司(纳斯达克股票代码:VICR)在高密度电源系统技术研发中积累的知识产权,对于 AI 等高增长市场实现卓越性能表现非常关键。获得 Vicor 核心知识产权授权——包括 800V、48V
    的头像 发表于 10-28 11:12 1159次阅读

    中汽中心获得ASEAN NCAP最新授权

    ”)颁发ASEAN NCAP 2026-2030 版规程测试授权证书。这一授权标志着中汽中心成为国内首个具备东盟新车评价规程(ASEAN NCAP)下一版规程官方测试能力的机构。此外,授权项目的范围也从原有的被动安全扩展到主动安
    的头像 发表于 10-28 10:45 984次阅读

    请问rt smart 的用户应用程序能自动加载吗?

    请问rt smart 的用户应用程序能自动加载吗?只需要将内核和用户程序隔离开,开机自动加载
    发表于 10-13 06:17

    助力MES系统工厂:基于深控技术工业网关的设备数据采集与云端管理实践

    多数工厂的 MES 系统仍面临 “数据孤岛” 困境 —— 设备层与系统层数据割裂、采集效率低下、云端管理滞后,制约了生产效能的最大化。深控技术 “不需要点表的工业网关” 以其协议自主解析、部署高效的特性,为破解这一难题提供了全新
    的头像 发表于 09-05 18:21 1158次阅读

    端云协同解锁智能硬件新体验,启明云端正式登陆阿里云云市场

    携RAIHA桌搭、赛博地平线两款产品首批入驻。两款产品深度集成阿里云云端资源与AI能力,用户可通过小程序实现设备云端绑定、云端语音处理、智能
    的头像 发表于 07-09 18:03 1608次阅读
    端云协同解锁智能硬件新体验,启明<b class='flag-5'>云端</b>正式登陆阿里云云市场

    如何使用第三方库中的@pura/harmony-utils(V1.3.3)申请授权工具类二

    ' ];PermissionUtil.requestPermissions(p).then((grant) = > { if (grant) { ToastUtil.showToast( `申请授权,已通过...` ); }}) 如果第一次申请用户
    的头像 发表于 06-24 17:32 766次阅读

    艾默生 SolaHD 通过 \"从地板到云端™\"解决方案和在线产品配置器推进电能质量管理

    备先进的诊断功能。这一坚实基础可与云端系统实现无缝对接,使企业能够灵活扩展运营规模、获取实时数据分析,并快速适应不断变化的市场需求。 SolaHD\"从设备层到云端™\"解决方案
    发表于 06-10 14:50