20264 月30
功能说明
基于 Python FastAPI + SQLite + Ant Design + ZLMediaKit + Jessibuca 实现的简易 ONVIF / RTSP 摄像头监控平台。
- Python:实现WEB后台服务,包括用户登陆相关、摄像头操作接口、录像文件定时清理等
- ZLMediaKit:流媒体服务,提供推流转发、录像等流媒体功能
- SQLite:存储用户名、密码、权限、摄像头信息、录像文件信息
- Ant Design:前端界面,由AI生成(感觉交互还有优化空间)
- Jessibuca:前端流媒体播放器
https://github.com/budwk/budcam 源码及安装包地址
安全机制
- 用户身份:Jwt Token
- 摄像头权限:通过 SQLite 数据库关联查询
- 流媒体服务:hook 通过用户 token 回调验证,不登陆获得合法 token 无法通过链接直接查看摄像头
- 网络安全:流媒体服务通过 nginx + 前端代理,无需暴露流媒体服务端口
开发心得
- 打包fpk安装包:创建独立配置文件,需要把脚本放到 cmd/install_callback 里,直接放 intsall_init 是不行的,而且要通过挂在文件夹的方式挂在到docker,而不是直接挂在文件,因为docker会把文件路径创建成文件夹,导致文件创建失败
20259 月9
背景:2013年比特币兴起的时候,注册了比特币官网账号及钱包,从TB等处买了少量BTC,大概有0.02个吧,当时助记词存在硬盘上,N年来电脑换了好几个,最终由于Thinkpad X1 SSD硬盘挂了(见文章:https://wizzer.cn/archives/3552),导致历史备份文件永久丢失。最近从邮箱中找到了当时钱包的备份文件,wallet.aes.json 但密钥文件使用密码加密了,尝试了一堆常用密码,都不对(不知道当时脑子咋想了,弄那么复杂的密码干啥),于是尝试破解密码。
这个工具主要通过海量的密码词典,进行匹配,看是否有可能匹配的密码组合:
python btcrecover.py --wallet wallet.aes.json --passwordlist weakpass.txt --no-dupchecks
–no-dupchecks 关闭重复猜测检查以节省内存
3、根据自己的密码习惯生成密码
import itertools
import random
def generate_passwords(base_string, max_length=5):
# 生成所有可能的字符组合,允许任意顺序
base_list = list(base_string)
for length in range(1, max_length + 1):
for combo in itertools.product(base_list, repeat=length):
# 生成大小写的所有组合
for case in itertools.product(*[(char.lower(), char.upper()) for char in combo]):
yield ''.join(case)
def save_to_file(passwords, filename):
with open(filename, 'w') as file:
for password in passwords:
file.write(password + '\n')
if __name__ == "__main__":
base_string = 'abcdefg123456'
max_length = 11 # 可以根据需要调整
passwords = generate_passwords(base_string, max_length)
save_to_file(passwords, 'passwords.txt')
print(f"生成的密码已保存到 passwords.txt")
然而,使用了weakpass网站的上十亿密码组合,依旧没有匹配到我的密码……
尝试用生成密码的方式找回密码中……
20246 月19
1、文档说明要求 python 3版本,但没有说必须是 3.6 版本,其他版本报错找不到 libpython3.6m.so.1.0;
2、使用 python 3.6 得安装 requests 组件,文档没有说明;
3、部署时必须指定执行的 sh 脚本文件;
Dcokerfile 文件内容如下:
FROM python:3.6-slim
WROKDIR /app
COPY . /app
RUN python -m pip install --upgrade pip
RUN pip install requests
RUN pip install pycryptodome
EXPOSE 8080
ps:搞过微信开发的都知道,微信的开发文档到底是多么多么的……
20232 月14
安装 python3 运行环境
yum install -y zlib zlib-devel libaio net-tools bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel python3-devel tk-devel gcc cmake gcc-c++ make libffi-devel mesa-libGL.x86_64 wget git
安装 pip3 运行环境
yum install zlib*
下载 Python3 安装包
wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tar.xz
<em>tar </em>-xxf Python-3.7.9.tar.xz
cd Python-3.7.9
vi Modules/Setup.dist
将
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
前面的 # 符号去掉
:wq
安装新版 openssh
wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz<br>tar -xxf openssl-1.1.1a.tar.gz<br>cd openssl-1.1.1a/<br>./config --prefix=/usr/local/openssl<br>make & make install
安装 python3
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
<em>make </em>&& make install
创建 python3 软链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
下载 pip3 安装脚本
wget https://bootstrap.pypa.io/get-pip.py
安装 pip3
python3 get-pip.py
创建 pip3 软链接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3