记几个开源项目

https://github.com/kekewind/Kaleidoscope,python selenim QQ空间 虎牙 电影 微信 微博 抖音 知乎 B站 bili Bili 百度贴吧 小红书 tiktok youtube twitter 有颜色 爬虫

https://github.com/facert/awesome-spider爬虫收集

https://github.com/lonerge/tiktok_youtube_douyin_handling搜索关键字下载并可视化

https://github.com/Maryin-c/KeywordSpider_pictures_videos搜索关键字爬

https://github.com/Evil0ctal/Douyin_TikTok_Download_API是一个开箱即用的高性能异步抖音、快手、TikTok、Bilibili数据爬取工具,支持API调用,在线批量解析及下载

https://github.com/kekewind/MediaCrawler小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫

https://github.com/cuemacro/findatapy,python来下载yahoo等的金融数据

https://gitee.com/AJay13/ECommerceCrawlers爬虫集

https://github.com/EstrellaXD/Auto_Bangumi,自动追动漫

https://github.com/kekewind/public-apis#open-data一些API的集合,可能新闻类有用

服务器部署Navidrome开源音乐服务器

可以用来自建云端音乐播放器,让你在任何地方通过浏览器或者手机来收听自己的音乐,兼容 Subsonic、Aironic 播放器

支持各大平台,包括:

  • Windows
  • macOS
  • Linux
  • Docker

这次用docker安装,先安装docker,我是直接用宝塔装了个docker管理器,

然后进终端

mkdir -p /opt/docker/navidrome && cd /opt/docker/navidrome && mkdir -p /music && chmod 755 -R /music

新建docker-compose.yaml文件并编辑

执行以下命令,新建 docker-compose.yaml 文件并编辑

nano docker-compose.yaml

然后输入以下配置内容,然后 Ctrl X + y +回车 退出并保存即可。

---
version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    ports:
      - 2079:4533
    restart: unless-stopped
    environment:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
      ND_DEFAULTLANGUAGE: zh-Hans
      #设置默认语言为简体中文
      ND_ENABLESHARING: "true"
      #开启共享功能
    volumes:
      - /opt/docker/navidrome:/data
      - /music:/music:ro

docker-compose.yaml 文件中 2079 为暴露端口,4533上传页面,如被占用,请自行更改替换,需要在云服务器的控制台防火墙开放相应端口!然后放音乐文件的文件夹设置的根目录下的music

docker compose up -d
启动容器
浏览器访问服务器 IP:2079 即可访问,还可以配置反向代理加个域名,还可以用支持Subsonic/Madsonic/Airsonic 的客户端来播放。
各种第三方客户端:

iOS: play:Sub, substreamer, Amperfy and iSub
Android: DSub, Subtracks, substreamer, Ultrasonic  Audinaut
推荐https://ultrasonic.gitlab.io/download/
Web: Subplayer, Airsonic Refix, Aurial, Jamstash and Subfire
Desktop: Sublime Music (Linux) and Sonixd (Windows/Linux/macOS)
CLI: Jellycli (Windows/Linux) and STMP (Linux/macOS)
Connected Speakers:
Sonos: bonob
Alexa: AskSonic
Other:
Subsonic Kodi Plugin
Navidrome Kodi Plugin
HTTPDirFS

格式文档-套用

房产估价报告使用的限制条件
1、本次评估结果仅为人民法院确定财产处置参考价服务,不是评估估价
对象处置可实现的成交价格,也不应当被视为对评估对象处置成交价格的保
证。
2、本估价报告结论系为估价委托人提供的专业化估价意见,这个意见本
身无强制执行的效力,估价人员只对结论本身符合规范要求负责,而不对房地
产定价决策负责。

本报告必须完整使用方为有效。

加密和解密技术

  1. 加密和解密的基本概念
    加密:加密是一种将数据(明文)转换为其他格式(密文)的过程,以防止未经授权的人员访问。加密使用特定的算法(称为加密算法)和密钥来执行此转换。

解密:解密是将加密后的数据(密文)还原为原始数据(明文)的过程。解密通常使用相同的加密算法和相应的密钥来进行。

密钥:密钥是用于加密和解密数据的特定字符序列。密钥的长度和复杂性直接影响到加密算法的安全性。

  1. 对称加密
    对称加密是一种使用相同的密钥进行加密和解密的加密方法。这意味着加密和解密过程中使用的密钥是相同的。对称加密算法通常更快,但密钥管理可能会成为一个问题,因为每对通信方都需要共享相同的密钥。

常见对称加密算法:

AES(Advanced Encryption Standard)
DES(Data Encryption Standard)
3DES(Triple Data Encryption Standard)
RC4(Rivest Cipher 4)
Blowfish
实例:使用Python的cryptography库进行AES加密和解密:

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.primitives import padding
from cryptography.hazmat.backends import default_backend
import os

# 生成一个随机密钥
key = os.urandom(32)

# 生成一个随机初始化向量(IV)
iv = os.urandom(16)

# 使用AES加密算法和CBC模式创建一个加密对象
cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=default_backend())

# 创建一个加密器对象
encryptor = cipher.encryptor()

# 明文数据
plaintext = b"Hello, world!"

# 使用PKCS7填充对明文进行填充
padder = padding.PKCS7(128).padder()
padded_data = padder.update(plaintext) + padder.finalize()

# 对填充后的明文进行加密
ciphertext = encryptor.update(padded_data) + encryptor.finalize()

# 创建一个解密器对象
decryptor = cipher.decryptor()

# 对密文进行解密
decrypted_data = decryptor.update(ciphertext) + decryptor.finalize()

# 使用PKCS7填充的解除器对解密后的数据进行解填充
unpadder = padding.PKCS7(128).unpadder()
unpadded_data = unpadder.update(decrypted_data) + unpadder.finalize()

assert plaintext == unpadded_data
  1. 非对称加密
    非对称加密是一种使用两个不同密钥进行加密和解密的加密方法:一个公钥用于加密数据,一个私钥用于解密数据。公钥可以公开分享,而私钥必须保密。非对称加密算法通常比对称加密慢,但解决了密钥管理的问题。

常见非对称加密算法:

RSA(Rivest-Shamir-Adleman)
DSA(Digital Signature Algorithm)
ElGamal
ECC(Elliptic Curve Cryptography)
实例:使用Python的cryptography库进行RSA加密和解密:

from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives.asymmetric importpadding as asym_padding
from cryptography.hazmat.primitives import serialization, hashes
from cryptography.hazmat.backends import default_backend

# 生成RSA密钥对
private_key = rsa.generate_private_key(
    public_exponent=65537,
    key_size=2048,
    backend=default_backend()
)
public_key = private_key.public_key()

# 明文数据
plaintext = b"Hello, world!"

# 使用公钥对明文进行加密
ciphertext = public_key.encrypt(
    plaintext,
    asym_padding.OAEP(
        mgf=asym_padding.MGF1(algorithm=hashes.SHA256()),
        algorithm=hashes.SHA256(),
        label=None
    )
)

# 使用私钥对密文进行解密
decrypted_data = private_key.decrypt(
    ciphertext,
    asym_padding.OAEP(
        mgf=asym_padding.MGF1(algorithm=hashes.SHA256()),
        algorithm=hashes.SHA256(),
        label=None
    )
)

assert plaintext == decrypted_data
  1. 哈希函数
    哈希函数是一种将任意长度的数据映射到固定长度的输出的单向函数。哈希函数具有以下特性:

输入变化时,输出有很大概率发生变化(敏感性)
不同输入产生相同输出的概率极低(碰撞抵抗)
无法从输出反推输入(单向性)
常见哈希算法:

MD5(Message-Digest Algorithm 5)
SHA-1(Secure Hash Algorithm 1)
SHA-2(Secure Hash Algorithm 2)
SHA-3(Secure Hash Algorithm 3)
实例:使用Python的hashlib库进行SHA-256哈希:

import hashlib

# 需要进行哈希的数据
data = b"Hello, world!"

# 计算SHA-256哈希值
hash_object = hashlib.sha256(data)
hash_hex = hash_object.hexdigest()

print("SHA-256 hash:", hash_hex)

5. 数字签名

数字签名是一种用于验证数据完整性和身份验证的技术。数字签名的基本原理是:

  1. 发送者使用私钥对数据生成签名。
  2. 接收者使用发送者的公钥验证签名。

实例:使用Python的cryptography库进行RSA数字签名和验证:

from cryptography.hazmat.primitives.asymmetric import padding as asym_padding
from cryptography.hazmat.primitives import hashes

# 需要签名的数据
data = b"Hello, world!"

# 使用私钥对数据生成签名
signature = private_key.sign(
    data,
    asym_padding.PSS(
        mgf=asym_padding.MGF1(hashes.SHA256()),
        salt_length=asym_padding.PSS.MAX_LENGTH
    ),
    hashes.SHA256()
)

# 使用公钥验证签名
try:
    public_key.verify(
        signature,
        data,
        asym_padding.PSS(
            mgf=asym_padding.MGF1(hashes.SHA256()),
            salt_length=asym_padding.PSS.MAX_LENGTH
        ),
        hashes.SHA256()
    )
    print("Signature is valid.")
except Exception as e:
    print("Signature is invalid:", e)
  1. 实际应用及案例代码
    在现实中,加密和解密技术被广泛应用于各种场景,如:

安全通信:HTTPS、SSH、SSL/TLS等协议使用加密技术保护数据在传输过程中的安全性。
数据存储:加密文件系统和数据库使用加密技术保护存储的数据。
身份验证:密码学可以用于实现各种身份验证机制,如一次性密码(OTP)、双因素身份验证(2FA)等。
数字货币:比特币等数字货币使用加密技术确保交易的安全性和匿名性。
上述示例代码已经展示了如何使用Python的cryptography和hashlib库进行加密、解密、哈希和数字签名操作。在实际应用中,请确保使用适当的加密算法、密钥长度和库,同时遵循最佳实践来保护数据的安全。

以下是一些加密和解密实践的建议:

保护密钥:确保密钥的安全存储和传输。对于对称加密,可以考虑使用密钥管理服务(如AWS KMS、Google Cloud KMS等)来管理密钥。对于非对称加密,保护私钥的安全至关重要。

使用现代、安全的加密算法:避免使用被认为是不安全或过时的算法,如DES、RC4等。相反,选择经过时间检验且被广泛认可的算法,如AES、RSA等。

加密模式和填充方案:选择正确的加密模式和填充方案也很重要。例如,对于对称加密,推荐使用诸如AES-CBC、AES-GCM等模式;对于非对称加密,推荐使用OAEP填充。

更新和维护:随着技术的发展,密钥长度、加密算法或其他加密相关技术可能变得不再安全。因此,请关注加密技术的最新发展,并根据需要更新和维护您的加密实践。

性能和效率:加密和解密操作可能会对性能产生影响。在选择加密算法时,请权衡安全性和性能。在某些情况下,可以考虑使用硬件加速来提高加密和解密操作的性能。

审计和合规:确保遵循相关法规和行业标准,如GDPR、HIPAA、PCI DSS等,这可能要求使用特定的加密算法、密钥长度或其他安全措施。