- 博客(223)
- 资源 (82)
- 收藏
- 关注
原创 浏览器内使用JS和椭圆曲线密钥交换
与之相比,通常使用的其他导出类型包括 "spki"(SubjectPublicKeyInfo)和 "pkcs8"(Private-Key Information Syntax Standard #8)。"spki" 用于导出公钥,"pkcs8" 用于导出私钥。:导出的是 Private-Key Information Syntax Standard #8 结构,包含了私钥的算法标识和私钥本身。备注:公钥可以导出,私钥不允许导出,所以只能生成秘钥之后,保存共享密钥,用指纹来标记;
2024-04-16 16:25:40 101
原创 消息存储与同步策略设计
优点:以用户为中心比以会话为中心(tinode)的好处就是消息管理更加容易;每个用户的数据相对集中,可以快速的找到并一次性同步给客户;缺点:数据需要存储2份;优点:群聊使用读扩散,存储数据量少;缺点:读扩散,如果用户反复离线与上线,需要读取离线数据,对scylladb压力比较大;
2024-04-02 22:15:24 796
原创 用go实现一个任务调度类 (泛型)
实现了一个简单的任务管理系统,允许用户定义任务和工作者,并将任务分配给工作者进行处理。这个系统旨在提供一个灵活的任务管理框架,可以根据需要动态地添加和移除工作者,以及处理任务。
2024-03-24 15:25:41 582
原创 椭圆曲线密钥交换 (Elliptic Curve Diffie-Hellman, ECDH)代替DH秘钥交换
椭圆曲线加密(Elliptic Curve Cryptography,ECC)和迪菲-赫尔曼密钥交换(Diffie-Hellman Key Exchange,DH)都是现代密码学中常用的技术,它们可以用于安全地交换密钥和加密通信。
2024-03-23 14:01:14 769
原创 websocket 自制证书握手报错问题
此外,在websocket king client插件中测试使用时候需要加问号以及参数,否则链接错误。在JS中使用wss,网页的的地址也不要使用域名,而需要使用ip地址方式?
2024-03-20 09:39:38 113
原创 IM服务集群与跨服务器消息路由策略
在单机模式下,相对简单,认为所有的客户都在同一台服务器上,姑且认为1台服务器可以同时支持1万用户在线,在更多用户同时在线时,则需要集群来实现负载均衡。集群的算法需要解决故障处理以及动态添加的问题,同时需要考虑如何在集群节点间路由数据。
2024-03-18 14:39:56 1197
原创 使用golang发送邮件
目前大多应用都是手机登录,但是作为开源的一个软件,或者是私有的一个应用,那么使用手机短信接收验证码成本比较高,使用邮箱相对更容易,邮件其实是有格式的,不是随便发一个字符串过去就好了。这里从tinode中取出发邮件的部分做一个测试,如果不报错,就去收件箱接收邮件就好了。
2024-01-30 11:14:35 506
原创 使用scyllaDb 或者cassandra存储聊天记录
目前开源的聊天软件主要还是使用mysql存储数据,数据量大的时候比较麻烦;我打算使用scyllaDB存储用户的聊天记录,使用golang开发
2024-01-27 13:56:08 1196
原创 安卓上使用免费的地图OpenStreetMap
我在手机上直接运行,方便使用clash设置网络,我最近发现真机调试比模拟器好用多了。前一段使用了微信的地图,非常的好用。但是存在的问题是海外无法使用,出国就不能用了;其实国内三家:百度,高德,微信都是一样的问题,当涉及到商业使用的时候需要付费;国外除了谷歌还有一个选择,OpenSteetMap,这里记录一下使用流程。2)AndroidManifest.xml中添加依赖。1)模块的build.gradle添加。5) Fragment中添加初始化函数。4)主文件初始化中添加,
2024-01-08 22:24:34 531
原创 使用travelbook架设自己的实时位置共享服务
travelbook 是一款开源的安卓APP,它能以低功耗提供实时位置共享,它包含功能如下:好友之间分享实时位置;记录行程轨迹;标记收藏地点;对比目前市场的一些实时位置共享软件,这款软件APP和后端服务都是开源的,完全可以自己架设私有服务器,家人或者团队使用,避免了烦人的广告,也可以避免隐私扩展问题,同时也不必担心非法信息采集的问题。
2023-12-24 21:54:35 787 1
原创 从零开始写一个APM监控程序(一)协议
它支持多种语言,包括 Java、.NET、Node.js、Go 等,可以跟踪分布式系统中的请求流,并提供详细的性能数据和可视化的监控工具。采集数据的部分分为探针和SDK两种,比如是JAVA和dotNet有虚拟机的,可以使用hook技术来拦截自己需要的方法,如果是编译型语言基本上使用的是SDK,程序员插码的方式实现。它通过收集、分析和报告应用程序的性能数据,帮助开发人员和系统管理员更好地了解应用程序的运行状况,识别潜在的性能问题,并进行优化。对收集到的数据进行分析,以识别性能瓶颈、错误和潜在的优化点。
2023-11-18 16:28:52 697
原创 ffmpeg常用方法
FFmpeg 是一款开源的音视频处理工具,可以处理各种格式的音视频文件,并且可以进行格式转换、剪切、合并、添加水印等多种操作。
2023-03-17 12:04:49 879 1
原创 编写http workshop脚本从网站下载音乐
一般网页格式播放器的设计的访问流程基本都是:通过某个专辑ID获取媒体列表;根据列表中单个的媒体资源的ID去请求下载路径;
2023-03-05 12:36:31 401
原创 c++封装libxml2解析网页
有页面不符合XML规范,节点没有闭合,造成XPATH搜不到任何东西,主要是解析树时候名字丢失了,但是通过自己手写深度递归查找还是可以的,
2023-03-03 10:14:58 196
原创 使用开源httpworkshop执行http api测试与资源下载
httpworkshop集成了lua脚本引擎,可以通过脚本复用以及扩展DLL方式支持更多的功能;可以方便的实现http api测试以及资源分析下载。
2023-03-01 13:03:37 245
原创 关于联想Y7000P睡眠后无法唤醒问题修复
安装程序执行后,自动重启,开始自动更新,发现之前是45WW,目前是49WW。这个新的机器是WINDOWS11的,症状了自己睡眠后就醒不过来了,于是找了在线客服,客服问是否是在禁用触摸板情况下无法唤醒,我试试发现果然是,不禁用可以唤醒,禁用了就行了,只能重启;于是,我试了一下,果然更新时候发现之前的版本比较旧,于是我找到了公众号,提示下载一个软件修复驱动,页面有相关的说明,以及新版本BIOS的版本是。再然后就自动重启进入windows11了,此时测试发现,已经可以正常唤醒计算机了。
2023-02-21 13:05:21 2853 1
原创 golang让map支持高并发(1000万次操作14ms)
golang使用泛型map重新封装,支持高并发,可以实现100协程1000万次操做,在14ms内返回;
2022-11-14 10:33:35 435
原创 telegtram的通信协议MTproto2.0学习3 之 (telethon代码分析与TL的实现1)
telethon是一个Telegram客户端,非常适合学习协议的实现过程,
2022-10-20 17:10:20 2548
原创 cassandra4.0.6试用
目前很多IM的数据存储都是使用mysql,比如teamGram, OpenIMSdk,但是mysql水平扩展十分麻烦,而新的列数据库,有clickhouse, hbase, cassandra,其中cassandra十分适合IM数据存储,原因是:使用id分区,使用id以及时间戳聚合,这样可以完成以用户为中心的数据存储与查询
2022-10-11 15:01:41 515
jQuery-File-Upload9.7
2014-08-16
Libevent Reference Manual 2.0
2014-02-21
Mongo图形客户端
2012-11-09
QWhale Syntax Editor
2012-09-15
SCPS_Project-master.zip
2021-01-08
GDAL-3.1.3x64.zip
2020-12-11
TestHTTPGetAndroid27.rar
2020-05-17
net.sf.json.JSONObject需要引用几个JAR包
2020-05-15
io.oversec.one_1005015.apk
2020-04-27
File2QRcode.rar
2019-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人