Wayne's blog

首页

关于

loading..
programming

移动端和后端加解密

移动端和后端加解密背景最近做一个加解密的需求,虽然用的标准很老,但是还是被坑到了。 前后端加解密竟然不统一 前端 https://github.com/brix/crypto-js 前端加解密框架的选择较少,我看下来 能用的只有 crypto-js. 并且文档极少,官网实例都没写全,完全要找源代码才能调用。Github 13K star,疯了真的是。 ECB/Pkcs7 实例const encryptMessage = (msg:string) => { let keyHex = CryptoJS.enc.Utf8.parse('secret_key'); console.log(keyHex) return CryptoJS.DES ..

更多
loading..
Alpine

Alpine Linux

Alpine Linux背景Ubuntu 一定是最好的 Linux 发行版,但不是最轻量的,比如说 较高的内存占用,磁盘空间占用。 如果你想找一个 运行条件非常“瘦”,并且操作相对友好,那么 你要找的 一定是 Alpine。 Alpine安装和大多数发行版都不太一样。 Alpine会直接启动进去 所以 第一步其实是登录。默认账户名 root,没有密码 直接 enter登进去。 然后执行 setup-alpine 在这之后才和正常的Linux发行版差不多,但是只有命令行,没有GUI。但这不影响。 apk(包管理软件)其实用一个操作系统,无非就是在用它的一个软件生态。APK 就会让我感觉眼前一亮。 一个字,快! 另外一个原因是有更简单的命令。 想要安装一个软件: apk add vim 想要移除一个软件: ap..

更多
loading..
DNSmDNS

mDNS

multicast DNS背景我之前一直都在想,怎么解决路由器的DNS的映射问题。其实要求不高,只需要一个符合逻辑的 域名 就可以了。 太难了,不管是之前的小米路由器,还是现在的华硕路由器,维护起来太麻烦。 所以现在我要介绍一个技术:mDNS 路由器 DNS一般来说路由器上都会自带一个DNS作为缓存(dnsmasq),用来加速访问。 不管是运营商提供的 DNS 或者是 Public DNS,延迟 一般都会在 5 - 30 ms 左右,而路由器上的 DNS 因为距离实在太短了,所以 几乎都在 <= 1 m, 所以一般情况下 会有 5 - 30倍的速度提升。 Also,你还可以利用这个本地DNS来做一些自定义功能,比如做一些短域名解析,或者说自定义的主机解析。但大多数路由器厂商都没有提供这个功能..

更多
loading..
Python

Python 打包平台二进制文件

Python 打包平台二进制文件背景不知道为什么 Python 怎么那么火,到处都有在用,导致不得不用Python来完成一些事情。 python 安装依赖需要用到 pip,而且还需要有外网,但是这对离线部署就很不友好。 所以 在一些场景下还是需要打包二进制的。 e.gprogram// app.py from flask import Flask import service.user import service.algorithm app = Flask(__name__) @app.route("/") def hello(): return {"status": "UP"} @app.route(&quo..

更多
loading..
APIHTTPS

基于 HTTPS 保护的 API

基于 HTTPS 保护的 API最近部署了 ELK,KubeSphere,发现好多东西都在使用自签发的证书,并且现在HTTPS的网站覆盖率已经非常非常高了。 既然 HTTPS 这么好用,能不能解决更多问题呢。 我经常遇到一个场景,现代微服务应用,很多服务的职责非常清晰,只提供一个功能,一两个接口。 那么为了这一个接口而设计 各种权限认证 或者 Token 校验,显得非常罗嗦 麻烦。 但苦于一直没有找到轻量化的方案,所以一般情况下 我更多的选择是 IP Allow List。 但 我觉得 这个解,非 HTTPS 不可。 HTTPS生成证书mkdir -p certs openssl req \ -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key ..

更多
loading..
k8skubesphere

KubeSphere 离线部署 (2022)

KubeSphereOffline installA主机0. required 有网络 有国际代理 相同系统 可用空间 >= 40GiB 1. 下载相关依赖apt update apt install sudo curl openssl wget vim htop apt install socat conntrack ebtables ipset # 下载 kube key curl -sfL https://get-kk.kubesphere.io | sh - # 下载 所需要的images curl -L -O https://github.com/kubesphere/ks-installer/releases/download/v3.2.1/images-list.tx..

更多
loading..
ELKlog

ELK Docker deploy (2022)

ELK Docker deploy背景又到了各种运维time的时候了,最近要搭好多东西,比如 今天的主角 ELK,还有一些其他的基础设施,像是K8s,skywalking,prometheus。 每次安装这些组件版本都会比以前更新很多,并且和以前的安装方式有很大区别,每次都会踩新坑,那么现在就开始吧。 这里的 ELK 是 采用 Docker + 二进制的部署方式,因为 logstash 的 Docker 镜像似乎有些问题,Logstash 有些地方还是很坑的,所以后续我还会研究下更优雅的方式去做日志传输。 ElasticSearch 存储日志 Logstash 传输日志到 ElasticSearch Kibana 查看日志和分析日志 ElasticSearch ES 目前的 8.1 版本 链接方式..

更多
loading..
iptablesproxy

网关代理

网关代理(透明代理)最近 macOS 一直没有办法更新,即使set了https代理,然后最近做一些实验需要一个稳定的长时间在线的Linux实例。 多方面考虑下来还是要在NAS上开个虚拟机,既然都开了,不妨把网络问题一并解决吧。 env: ubuntu 20.04 (LTS) clash v1.10.0 iptables v1.8.4 (legacy) install1. 开启转发vim /etc/sysctl.conf # 去掉注释 net.ipv4.ip_forward = 1 # 生效 sysctl -p 2. 安装 clashhttps://github.com/Dreamacro/clash 下载release, 解压出来 # 添加可执行权限 chmod +x clash mkdir co..

更多
loading..
mediawebmhevcav01

未来视频编解码器

未来视频编解码器首先讲一下 这不是我要做个编码器,我是要用一个编码器,准确的来说 是用一些编码器。 Google 推出的 webp 和 webm 出现的场景越来越多了,各类编解码器也都进入到了一个新的纪元。so 几年过去了,我决定 review 一下现有的编解码器。 HEVC (mp4) 编解码较快 较 AVC 质量更好 HEVC 是现有设备兼容(高质量)能力最强的,编解码要求最低的。(指较新的设备)。 但是也是对商业软件(针对编解码)收费的,个人自由使用。 ffmpeg -i input -c:v libx265 -crf 26 -preset fast -c:a aac -b:a 192k output.mp4 对于 有视频压制工作流的Studio来说 来说,有 NVENC 的夹持下 能做到速度最快..

更多
loading..
HLSmedia

HLS Media

HLS Media之前我一直有一个误区,以为HLS是一个服务,可以把视频文件转换成媒体流。 但其实不是这样的,它是一种媒体格式,和日常使用的mp4,mov 是差不多的,但是又不一样。 HLS 首先会有一种特定的结构(m3u8),接着 再通过网络请求(HTTP),最后 客户端播放的时候,只需把这些结构拼装起来 即可播放。 m3u8m3u8 是一个播放列表, 一个播放列表可视为一个完整的视频,播放列表内 记录着一个个小视频。 这是一个 例子 output.m3u8 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:10 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:10.133333, output0.ts #EXTINF:10.133333, ou..

更多
13456716