开放式社交网络(OSN网络)之八:企业现有系统接入OSN网络的解决方案客户端篇

  企业现有系统已经有了自己的完整体系,要完成“跨界通信”需要在用户终端和服务器端进行一定的适配。
  客户端适配需要做的工作包括:生成OSN账户、添加跨界好友、发送和接收跨界消息。
生成OSN账户
客户端现有的账户体系需要与OSN账户做一个映射。
OSN账户是ECDSA公钥的散列组合,ECDSA采用Prime256V1曲线。
账号标志头:OSN
账号主体:base58编码字符串,base58编码与bitcoin一致。以后的所有base58都使用此编码。

账号主体二进制定义:
|字段尺寸|描述|数据类型|说明|
|2byte|版本|uchar|账号使用版本号,初始为1000|
|1byte|公钥标志|uchar|ECDSA公钥采用压缩模式和非压缩模式两种 04表示非压缩模式,公钥长度为64byte 03 02 表示压缩模式,公钥长度为32byte|
|64/32byte|公钥|uchar|非压缩公钥长度为64byte,压缩公钥只保留X,长度为32byte|
|32byte|shadow hash|uchar|一个地址的生成需要2对椭圆加密密钥对,后一对在地址中仅保留公钥的hash|

客户端账户推荐在用户终端生成,生成以后由客户端发起与原有账户的绑定。

添加跨界好友
  由于每个企业的制度不同,通过关键字搜索添加好友不一定能成功,因此推荐由双方好友相互交换OSN账户来添加好友。
客户端需要添加显示OSN账户,复制或者导出OSN账户,显示二维码等功能。

客户端通信录格式
客户端通信录格式推荐字段
|me|key|friend|randnum|randomstring|nickname|face|personalized|comment|phone|group|…|
randomstring之后的字段可以为空字符串。

发送和接收跨界消息
  发送跨界消息需要加密,根据OSN账户的生成方式,可以从OSN账户中取出对方好友公钥。

消息格式封装如下:
{
“command”:”message”,
“from”:”OSNXXXXXXXXXXXXXXXXXXXXXXXXXXXX”,
“to”:” OSNXXXXXXXXXXXXXXXXXXXXXXXXXXXX”,
“crpyto”:”yes/no”,
“content”:”base58 string”,
“description”: ”base58 string”,
“hash”:”hash”,
“timestamp”:””
“sign”:”xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
}
content的生成方式:
content使用base58编码,采用asn1格式,并分成key和cipher两部分。
key中包含了随机密码,其生成方式为
1.由客户端生成随机SHA256字符串。
2.使用to的公钥对随机SHA256进行加密。
cipher的生成方式为
1.使用随机SHA256作为key对需要发送的明文进行加密。
2.加密方式采用AES128cbc,hash前128bit作为key,后128bit作为vi。

key和cipher组成asn1格式以后使用base58编码,如果crypto为no,则解码以后无需解密。
解密需要from的私钥先解码出key,然后用key解码cipher。

description生成方式同content。

sign的生成方式:
使用通讯录中的key对hash进行签名。签名格式请参阅开放式社交网络通信协议中的签名。

接收到消息后的步骤:
1.验证消息签名
2.对content中的内容进行base58解码
3.解码asn1
4.使用私钥对密文进行解码以后取出随机密码
5.使用AES解密密文。
发送消息回执
接收消息完成以后,需要给对方发送一个消息获取的回执。
回执格式:
{
“command”:”complete”,
“from”:”OSNXXXXXXXXXXXXXXXXXXXX”,
“to”:”OSNXXXXXXXXXXXXXXXXXXXX”,
“sign”:”xxxxxxxxxxxxxxxxxxxxxxxxxxxxx”,
“msghash”:[“hash1”,”hash2”,”hash3”]
}
Sign:签名是将所有的hash链接成字符串以后签名。

接收到回执以后可以确认自己消息已经被对方成功接收。完成消息发送。

其他命令请参阅开放式社交网络通信协议。

原文地址:https://www.cnblogs.com/osnw/p/12178090.html

时间: 2024-10-12 14:50:02

开放式社交网络(OSN网络)之八:企业现有系统接入OSN网络的解决方案客户端篇的相关文章

Batman网络搭建,有线接入batman网络

摘要 本文主要讲解如何通过openwrt的路由器搭建batman网络,包括通过有线接入batman网络.本文假定路由器已经成功安装了openwrt系统,由于安装系统的较多,本文不再赘述. 1      batman-adv的安装 首先需要确保自己的路由器安装了batman-adv安装方法有很多种,这里推荐2种.通过以下命令可以查看是否安装了batman-adv opkg list | grep kmod-batman-adv 如果常规安装了通常会有以下输出: kmod-batman-adv -

开放式社交网络(OSN网络)之二:一个不甘被时代淘汰的中年父亲

  我们刚开始做这个项目的时候,遇到很多难题.当时我们看见公司业务下滑,于是向老板自荐了这个项目,也许是我表达能力有问题,老板很满意这套设计方案,但是就是不愿意启动项目.   于是我们就只能慢慢看着公司的人口由100来人,变成了80号人,又变成了40号人,然后是发不起工资,然后是欠薪,然后是......   后来我们不愿意这个想法就此结束,我们就选择了离开公司,自主创业.当我在设计这个项目时,遭到了各种各样的质疑.也经常遭到家人的打击,“你做梦吧”,“别人都想不到,就你能想到”,“这种大事不需要

金众诚企业信息化系统包括哪些基本功能

随着信息化浪潮席卷全球,企业管理信息化系统开始在企业的核心业务运作上扮演至关重要的角色,企业的发展分工越来越趋于精细化,企业的核心业务的良好运作是企业在市场上保持竞争力的根本.为了成功实施管理信息化核心系统,企业需要选择既懂流程技术又懂业务问题的合作伙伴. 企业的管理系统的作用是利用人的主导作用,辅助以现代的计算机软.硬件设备.通信网络以及办公设备等物质支持,进行的企业运营信息的收集.储存.加工.传输以及维护,进而达到提高企业日常营运效率提高,战略决策水平的增强效果.根据上述企业管理系统的作用分

金众诚企业信息化系统厂家有哪些      

金众诚企业信息化系统厂家有哪些 与风风火火.即将引爆的中小企业信息化市场相比,我国大型企业信息化市场似乎有些不温不火.大企业现代化水平显然比中小企业高,但为何社会各界对其信息化应用的关注度看上去反不如中小企业那么高大企业有哪些有共性的信息化需求?带着这些问题,我们在上海浦江两岸,对十多家大型企业集团信息化应用进行了实地调查. 调查中我们发现,其实,大企业信息化远比中小企业起步早.基础好.层次高,一些大企业内部信息化早已进入深度应用阶段.但是长期以来,由于传统大企业以"大"为主要特点,呈

MiinCMP1.0 SAE 新浪云版发布, 开源企业网站系统

MiinCMP是一款开源企业网站系统,除可运行于256M左右100元的国内IDC外,JUULUU聚龙软件团队近期开发了面向新浪云的版本,该版本可将网站免费布署到新浪云SAE上.MiinCMP采用java开发,兼容jetty,tomcat等servlet容器.   MiinCMP1.0 新浪云SAE版安装包 http://pan.baidu.com/s/1kT1EbUR 百度云下载   MiinCMP1.0 新浪云SAE版源码包 http://pan.baidu.com/s/1kT9f9mZ  百

RedHat系统下的网络配置,主机名的修改,进入单用户模式修改root密码和使用SSH远程连接工具

一.操作前准备 a.装有VirtualBox虚拟机和在虚拟机里已安装RedHat系统 b.在百度上搜索下载XSell软件后面会使用它远程连接服务器 二.RedHat系统下的网络配置 a.首先需要对新建的虚拟机进行相应的设置 如图: 这里介绍下为什么要选用桥接模式: VirtualBox中有4中网络连接方式:      a. NAT            网络地址转换模式(Network Address Translation)      b. Bridged Adapter    桥接模式   

MiinCMP1.0 SAE 新浪云版公布, 开源企业站点系统

MiinCMP是一款开源企业站点系统,除可执行于256M左右100元的国内IDC外,JUULUU聚龙软件团队最近开发了面向新浪云的版本号,该版本号可将站点免费布署到新浪云SAE上.MiinCMP採用java开发,兼容jetty,tomcat等servlet容器.   MiinCMP1.0 新浪云SAE版安装包 http://pan.baidu.com/s/1kT1EbUR 百度云下载   MiinCMP1.0 新浪云SAE版源代码包 http://pan.baidu.com/s/1kT9f9mZ

企业ERP系统选C/S架构还是B/S架构?

企业 ERP 系统选 C/S 还是 B/S 架构? C/S(Client rver,客户端/服务器)和B/S(Browser rver,浏览器/服务器)是目前ERP系统主流的两大计算架构,C/S技术从上世纪90年代初出现至今已经相当成熟,并得到了非常广泛的应用,其结构经历了二层C/S.三层C/S的更迭.B/S技术则是伴随着Internet的普及而来的,正经历不断的完善的过程.从技术上来说它们各有千秋,如何选择主要取决与企业的需求,那么咱们先了解下这两种架构的异同之处,就能知道企业到底适合用哪种架

浅析企业ERP系统运维体系的建立

 浅析企业ERP系统运维体系的建立 1 ERP系统的运维简介 ERP系统的运维是指ERP系统上线后的运行和维护保障.ERP系统上线既是系统建设的结束,同时又是一个新的起点,需要付出更多的时间和精力来开展系统维护工作,维持系统的正常运行,解决系统的错误以及用户的操作失误带来的问题.ERP系统的运维主要包括与ERP系统相关的硬件.软件.网络.系统.安全.数据.用户操作等多方面的工作.要确保所有这些方面的工作正常进行,不出问题,并不是件容易的事,需要付出艰苦的努力才能实现. 2 ERP运维经历的3