声明(置顶)
本网站属个人分享网站,非营利性网站!
附:
#针对Linux !/usr/bin/env python3 import argparse import base64 import os from cryptography.hazmat.primitives.asymmetric import rsa, padding from cryptography.hazmat.primitives import serialization, hashes from cryptography.hazmat.backends import default_backend # ---------- 生成密钥对 ---------- def gen_keys(name_prefix="my_rsa", bits=2048): private_key = rsa.generate_private_key( public_exponent=65537, key_size=bits, backend=default_backend() ) public_key = private_key.public_key() # 私钥 PEM pem_private = private_key.private_bytes( encoding=serialization.Encoding.PEM, format=serialization.PrivateFormat.PKCS8, encryption_algorithm=serialization.NoEncryption() ) # 公钥 PEM pem_public = public_key.public_bytes( encoding=serialization.Encoding.PEM, format=serialization.PublicFormat.SubjectPublicKeyInfo ) with open(f"{name_prefix}_private.pem", "wb") as f: f.write(pem_private) with open(f"{name_prefix}_public.pem", "wb") as f: f.write(pem_public) print(f"已生成 {name_prefix}_private.pem 与 {name_prefix}_public.pem") # ---------- 辅助读密钥 ---------- def load_public_key(path): with open(path, "rb") as f: return serialization.load_pem_public_key(f.read(), backend=default_backend()) def load_private_key(path): with open(path, "rb") as f: return serialization.load_pem_private_key(f.read(), password=None, backend=default_backend()) # ---------- 加密 ---------- def encrypt_text(text: str, pub_key_path: str) -> str: pub_key = load_public_key(pub_key_path) cipher = pub_key.encrypt( text.encode("utf-8"), padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None) ) return base64.b64encode(cipher).decode("utf-8") # ---------- 解密 ---------- def decrypt_text(b64_cipher: str, priv_key_path: str) -> str: priv_key = load_private_key(priv_key_path) cipher = base64.b64decode(b64_cipher.encode("utf-8")) plain = priv_key.decrypt( cipher, padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None) ) return plain.decode("utf-8") # ---------- 帮助文字 ---------- if __name__ == "__main__": parser = argparse.ArgumentParser(description="RSA 加密/解密小工具") sub = parser.add_subparsers(dest="action") # 生成密钥 g = sub.add_parser("gen", help="生成密钥对") g.add_argument("-p", "--prefix", default="my_rsa", help="文件名前缀") g.add_argument("-b", "--bits", type=int, default=2048, help="密钥长度") # 加密 e = sub.add_parser("enc", help="加密文本") e.add_argument("-t", "--text", required=True, help="要加密的文本") e.add_argument("-k", "--pubkey", required=True, help="公钥文件路径") # 解密 d = sub.add_parser("dec", help="解密文本") d.add_argument("-c", "--cipher", required=True, help="base64 密文") d.add_argument("-k", "--privkey", required=True, help="私钥文件路径") args = parser.parse_args() if args.action == "gen": gen_keys(args.prefix, args.bits) elif args.action == "enc": print(encrypt_text(args.text, args.pubkey)) elif args.action == "dec": print(decrypt_text(args.cipher, args.privkey)) else: parser.print_help() # d*##$. # zP"""""$e. $" $o #4$ '$ $" $ #'$ '$ J$ $F # 'b $k $> $ # $k $r J$ d$ # '$ $ $" $~ # '$ "$ '$E $ # $ $L $" $F ... # $. 4B $ $$$*"""*b # '$ $. $$ $$ $F # "$ R$ $F $" $ # $k ?$ u* dF .$ # ^$. $$" z$ u$$$$e # #$b $E.dW@e$" ?$ # #$ .o$$# d$$$$c ?F # $ .d$$#" . zo$> #$r .uF # $L .u$*" $&$$$k .$$d$$F # $$" ""^"$$$P"$P9$ # JP .o$$$$u:$P $$ # $ ..ue$" "" $" # d$ $F $ # $$ ....udE 4B # #$ """"` $r @$ # ^$L '$ $F # RN 4N $ # *$b d$ # $$k $F # $$b $F # $"" $F # '$ $ # $L $ # '$ $ # $ $ # 永无BUG!!!!
提示:需要先安装cryptography!!需要先安装cryptography!!需要先安装cryptography!!
如果不安装,程序会直接报错退出
我最近又做了个加密工具,是RSA的加密工具,2048bit的加密。
我觉得挺好用的,但是有一个大问题,SHA256不能存太多中文字符,暂时没有很好的解决方法。
下面分享一下此工具的使用方法:
生成:
python XXX.py gen ------------如果您使用的是EXE发行版-------------- XXX.exe gen
加密:
python XXX.py enc -t "在此处输入您要加密的明文" -k 公钥名称.pem ------------如果您使用的是EXE发行版-------------- XXX.exe enc -t "在此处输入您要加密的明文" -k 公钥名称.pem
解密:
python XXX.py dec -c "在此处输入您要加密的明文" -k 私钥名称.pem ------------如果您使用的是EXE发行版-------------- XXX.exe dec -c "在此处输入您要解密的密文" -k 私钥名称.pem
使用本程序的步骤:
生成秘钥对 执行上方“生成”板块中的指令,生成秘钥对
加密 执行上方“加密”板块中的指令,生成密文
加密者和解密者之间的传输 将在执行“生成秘钥对”步骤时生成的私钥(要注意是私钥不是公钥)传输给解密者
解密者解密 执行上方“解密”板块中的指令,解密密文,生成明文
祝您使用愉快!
青岛的邮轮母港真的很出片,青岛的朋友有空一定要来看看。
在白天拍充满了生机,在晚上拍又显得很伤感和蓝调。
PS: 网站和3D打印机图片的颗粒度(这是真颗粒度)没对齐,图片显示的有点花,打开看就正常了
又鸽一个月了,最近买了台3D打印机(某竹A1)
事实证明,打印是会上瘾的,我刚买来没几天,已经打了不下十个模型,甚至还接了个单帮别人打😓
我还不太会建模,希望我的技术能越来越好😁
PS: 网站和3D打印机图片的颗粒度(这是真颗粒度)没对齐,图片显示的有点花,打开看就正常了
故事的开头是一块512G的固态硬盘,是我从一堆东西中翻出来的,2023年的硬盘。拿起那块硬盘,我突然想起,那是存储着我旧电脑中所有文件的硬盘,手边正好有一块台机主板,一时兴起,便再度组装好那张台机主板,并把硬盘装了进去。
成功进入系统界面,输入密码,屏幕上一行“欢迎!”映入眼帘,随后浮现出的,是2023年时,我笔记本电脑上的系统画面。
我随后打开“文件资源管理器”,最开始看到的只是一些很普通的、不起眼的文件夹,可越是不起眼的地方,就越容易发现不凡的东西。
我看到“关于服务器”和“服务端”文件夹,打开后,是我开我的世界服务器以来到2023年的所有服务器存档和插件,我立刻把所有的数据拷贝到U盘上。
“叮”U盘拔出了主板“噔噔~”U盘插入了笔记本,我把2023年所有备份连带服务器内容和博客都拷贝到了服务器上。
人可能真的是这样的吧,在未来,就算是不久的将来想起以前的某件事,都会不由得有些怀念
最近打算新装台电脑,给我爸办公用,散热器用的利民某青春版,CPU是i5-12400,内存是光威两条32G D4,主板是MSI B760M-A,电源是长城HOPE额定400W,主板风扇是棱镜4代正叶3个,反叶2个,机箱是瓦尔基里VK03M LITE,硬盘是光威两个1TB,屏幕选的是HKC 240fps。
除去已经有的内存和散热器还有硬盘,小计3089元
瞬时刺激
前3秒黄金法则:强视觉(高饱和度/对比色/震撼画面)、突发音效(玻璃碎裂、笑声)、动态镜头(快速缩放/旋转)。
案例:TikTok热门视频常用「视觉轰炸」开场(如@mrbeast的钞票雨)。(如主页的图片(用作解释引用,无侵权行为))在空中洒下许多钞票,或者在前几帧堆满钞票。这样可以刺激人脑,让人自发的想看下去。
多巴胺反馈
不可预测奖励:前面说的随机性类似老虎机机制,触发期待感。
神经科学研究显示,短视频的间歇性奖励刺激伏隔核(大脑愉悦中心)。
「钩子-痛点-闭环」模板
钩子:「你知道你的手机正在监听你吗?」(制造认知缺口)
痛点:「为什么你总是拖延?」(触发自我代入)
闭环:结尾故意不完整(「下期讲解决方法」)诱导关注。
节奏公式
2秒一切镜:抖音平均单镜头时长1.7秒,超过3秒用户流失率上升37%(内部数据)。
协同过滤陷阱
用户每点赞1个猫视频,算法会推送100个相似内容,形成「注意力漩涡」。
案例:YouTube的「Up Next」推荐使人均观看时长增加40%。
退出阻力设计
自动播放+全屏模式:移除物理停止线索(如进度条/暂停按钮需主动点击)。
界面改造
使用灰度模式(iOS的「色彩滤镜」)降低视觉吸引力。
强制进度条外显:安卓开发者模式可启用「强制显示视频控制条」。
认知干预
预设观看上限:提前告诉自己「只看3条」,激活前额叶抑制功能。
我整理了一份基本所有顶级域名对应的Whois服务器,我放在这里,可供参考哈~
(其实就是查询域名 WHOIS - Yxzhou)用的列表
"ac" => "whois.nic.ac",
"ae" => "whois.aeda.net.ae",
"aero" => "whois.aero",
"af" => "whois.nic.af",
"ag" => "whois.nic.ag",
"al" => "whois.ripe.net",
"am" => "whois.amnic.net",
"as" => "whois.nic.as",
"asia" => "whois.nic.asia",
"at" => "whois.nic.at",
"au" => "whois.aunic.net",
"ax" => "whois.ax",
"az" => "whois.ripe.net",
"ba" => "whois.ripe.net",
"be" => "whois.dns.be",
"bg" => "whois.register.bg",
"bi" => "whois.nic.bi",
"biz" => "whois.neulevel.biz",
"bj" => "www.nic.bj",
"br" => "whois.nic.br",
"br.com" => "whois.centralnic.com",
"bt" => "whois.netnames.net",
"by" => "whois.cctld.by",
"bz" => "whois2.afilias-grs.net",
"ca" => "whois.cira.ca",
"cat" => "whois.cat",
"cc" => "whois.nic.cc",
"cd" => "whois.nic.cd",
"ch" => "whois.nic.ch",
"ck" => "whois.nic.ck",
"cl" => "whois.nic.cl",
"cn" => "whois.cnnic.net.cn",
"cn.com" => "whois.centralnic.com",
"co" => "whois.nic.co",
"co.nl" => "whois.co.nl",
"coop" => "whois.nic.coop",
"cx" => "whois.nic.cx",
"cy" => "whois.ripe.net",
"cz" => "whois.nic.cz",
"de" => "whois.denic.de",
"dk" => "whois.dk-hostmaster.dk",
"dm" => "whois.nic.cx",
"dz" => "whois.nic.dz",
"edu" => "whois.educause.net",
"ee" => "whois.tld.ee",
"eg" => "whois.ripe.net",
"es" => "whois.nic.es",
"eu" => "whois.eu",
"eu.com" => "whois.centralnic.com",
"fi" => "whois.ficora.fi",
"fo" => "whois.nic.fo",
"fr" => "whois.nic.fr",
"gb" => "whois.ripe.net",
"gb.com" => "whois.networksolutions.com",
"gb.net" => "whois.centralnic.com",
"qc.com" => "whois.centralnic.com",
"ge" => "whois.ripe.net",
"gl" => "whois.nic.gl",
"gm" => "whois.ripe.net",
"gov" => "whois.nic.gov",
"gr" => "whois.ripe.net",
"gs" => "whois.nic.gs",
"hk" => "whois.hknic.net.hk",
"hm" => "whois.registry.hm",
"hn" => "whois.nic.hn",
"hr" => "whois.dns.hr",
"hu" => "whois.nic.hu",
"hu.com" => "whois.centralnic.com",
"id" => "whois.pandi.or.id",
"ie" => "whois.domainregistry.ie",
"il" => "whois.isoc.org.il",
"in" => "whois.inregistry.net",
"info" => "whois.afilias.info",
"int" => "whois.isi.edu",
"io" => "whois.nic.io",
"iq" => "vrx.net",
"ir" => "whois.nic.ir",
"is" => "whois.isnic.is",
"it" => "whois.nic.it",
"je" => "whois.je",
"jobs" => "jobswhois.verisign-grs.com",
"jp" => "whois.jprs.jp",
"ke" => "whois.kenic.or.ke",
"kg" => "whois.domain.kg",
"kr" => "whois.nic.or.kr",
"la" => "whois.nic.la",
"li" => "whois.nic.li",
"lt" => "whois.domreg.lt",
"lu" => "whois.restena.lu",
"lv" => "whois.nic.lv",
"ly" => "whois.nic.ly",
"ma" => "whois.iam.net.ma",
"mc" => "whois.ripe.net",
"md" => "whois.nic.md",
"me" => "whois.nic.me",
"mil" => "whois.nic.mil",
"mk" => "whois.ripe.net",
"mobi" => "whois.dotmobiregistry.net",
"ms" => "whois.nic.ms",
"mt" => "whois.ripe.net",
"mu" => "whois.nic.mu",
"mx" => "whois.nic.mx",
"my" => "whois.mynic.net.my",
"name" => "whois.nic.name",
"net" => "whois.verisign-grs.com",
"nf" => "whois.nic.nf",
"ng" => "whois.nic.net.ng",
"nl" => "whois.domain-registry.nl",
"no" => "whois.norid.no",
"no.com" => "whois.centralnic.com",
"nu" => "whois.nic.nu",
"nz" => "whois.srs.net.nz",
"co.nz" => "whois.srs.net.nz",
"org" => "whois.pir.org",
"pl" => "whois.dns.pl",
"pr" => "whois.nic.pr",
"pro" => "whois.registrypro.pro",
"pt" => "whois.dns.pt",
"pw" => "whois.nic.pw",
"ro" => "whois.rotld.ro",
"ru" => "whois.tcinet.ru",
"sa" => "saudinic.net.sa",
"sa.com" => "whois.centralnic.com",
"sb" => "whois.nic.net.sb",
"sc" => "whois2.afilias-grs.net",
"se" => "whois.nic-se.se",
"se.com" => "whois.centralnic.com",
"se.net" => "whois.centralnic.com",
"sg" => "whois.nic.net.sg",
"sh" => "whois.nic.sh",
"si" => "whois.arnes.si",
"sk" => "whois.sk-nic.sk",
"sm" => "whois.nic.sm",
"st" => "whois.nic.st",
"so" => "whois.nic.so",
"su" => "whois.tcinet.ru",
"tc" => "whois.adamsnames.tc",
"tel" => "whois.nic.tel",
"tf" => "whois.nic.tf",
"th" => "whois.thnic.net",
"tj" => "whois.nic.tj",
"tk" => "whois.nic.tk",
"tm" => "whois.nic.tm",
"tn" => "whois.ati.tn",
"to" => "whois.tonic.to",
"tp" => "whois.domains.tl",
"tr" => "whois.nic.tr",
"travel" => "whois.nic.travel",
"tw" => "whois.twnic.net.tw",
"tz" => "whois.tznic.or.tz",
"ua" => "whois.ua",
"uk" => "whois.nic.uk",
"uk.com" => "whois.centralnic.com",
"uk.net" => "whois.centralnic.com",
"ac.uk" => "whois.ja.net",
"gov.uk" => "whois.ja.net",
"us" => "whois.nic.us",
"us.com" => "whois.centralnic.com",
"uy" => "nic.uy",
"uy.com" => "whois.centralnic.com",
"uz" => "whois.cctld.uz",
"va" => "whois.ripe.net",
"vc" => "whois2.afilias-grs.net",
"ve" => "whois.nic.ve",
"vg" => "whois.nic.vg",
"ws" => "whois.website.ws",
"xxx" => "whois.nic.xxx",
"yu" => "whois.ripe.net",
"za.com" => "whois.centralnic.com",
"com" => "whois.internic.net",
"aero" => "whois.aero",
"arpa" => "whois.iana.org",
"asia" => "whois.nic.asia",
"at" => "whois.nic.at",
"be" => "whois.dns.be",
"biz" => "whois.biz",
"br" => "whois.registro.br",
"ca" => "whois.cira.ca",
"cc" => "whois.nic.cc",
"cn" => "whois.cnnic.net.cn",
"com" => "whois.verisign-grs.com",
"gov" => "whois.nic.gov",
"in" => "whois.inregistry.net",
"info" => "whois.afilias.info",
"int" => "whois.iana.org",
"is" => "whois.isnic.is",
"it" => "whois.nic.it",
"jobs" => "jobswhois.verisign-grs.com",
"me" => "whois.meregistry.net",
"mil" => "whois.nic.mil",
"mobi" => "whois.dotmobiregistry.net",
"museum" => "whois.museum",
"name" => "whois.nic.name",
"net" => "whois.verisign-grs.net",
"org" => "whois.pir.org",
"pro" => "whois.registrypro.pro",
"tc" => "whois.adamsnames.tc",
"tel" => "whois.nic.tel",
"travel" => "whois.nic.travel",
"co.uk" => "whois.nic.uk",
"org.uk" => "whois.nic.uk",
"us" => "whois.nic.us",
"wang" => "whois.nic.wang",
"top" => "whois.nic.top",
"ren" => "whois.nic.ren",
"xn--55qx5d" => "whois.ngtld.cn",
"公司" => "whois.ngtld.cn",
"中国" => "whois.cnnic.net.cn",
"xn--fiqs8s" => "whois.cnnic.net.cn",
"网络" => "whois.ngtld.cn",
"xn--io0a7i" => "whois.ngtld.cn",
"政务" => "whois.ngtld.cn",
"xn--zfr164b" => "whois.ngtld.cn",
"公益" => "whois.ngtld.cn",
"xn--55qw42g" => "whois.ngtld.cn",
"集团" => "whois.nic.wang",
"xn--3bst00m" => "whois.nic.wang",
"新闻" => "whois.gtld.knet.cn",
"网店" => "whois.gtld.knet.cn",
"时尚" => "whois.gtld.knet.cn",
"商标" => "whois.gtld.knet.cn",
"我爱你" => "whois.gtld.knet.cn",
"网址" => "whois.gtld.knet.cn",
"中信" => "whois.gtld.knet.cn",
"八卦" => "whois.gtld.knet.cn",
"商城" => "whois.gtld.knet.cn",
"餐厅" => "whois.gtld.knet.cn",
"娱乐" => "whois.gtld.knet.cn",
"慈善" => "whois.gtld.knet.cn",
"手机" => "whois.afilias-srs.net",
"xn--kput3i" => "whois.afilias-srs.net",
"ws" => "whois.website.ws",
"xxx" => "whois.nic.xxx",
"ac" => "whois.nic.ac",
"af" => "whois.nic.af",
"as" => "whois.nic.as",
"ag" => "whois.nic.ag",
"am" => "whois.amnic.net",
"at" => "whois.nic.at",
"cm" => "whois.netcom.cm",
"com.de" => "whois.denic.de",
"ec" => "whois.nic.ec",
"fm" => "whois.nic.fm",
"gg" => "whois.gg",
"gy" => "whois.registry.gy",
"mg" => "whois.nic.mg",
"pe" => "kero.yachay.pe",
"ph" => "dot.ph",
"sg" => "whois.sgnic.sg",
"sx" => "whois.sx",
"tl" => "whois.nic.tl",
"tv" => "tvwhois.verisign-grs.com",
"gb" => "whois.1api.net",
"site" => "whois.centralnic.com",
"website" => "whois.nic.website",
"web" => "whois.centralnic.com",
"home" => "whois.centralnic.com",
"space" => "whois.nic.space",
"online" => "whois.centralnic.com",
"press" => "whois.nic.press",
"tech" => "whois.nic.tech",
"store" => "whois.centralnic.com",
"music" => "whois.centralnic.com",
"shop" => "whois.centralnic.com",
"mk" => "whois.marnet.mk",
"gw" => "whois.nic.gw",
"mp" => "whois.nic.mp",
"ml" => "whois.dot.ml",
"tk" => "whois.dot.tk",
"cf" => "whois.dot.cf",
"ga" => "whois.my.ga",
"gq" => "whois.dominio.gq",
"sg" => "whois.sgnic.sg",
"mo" => "whois.monic.mo",
"news" => "whois.rightside.co",
"bi" => "whois1.nic.bi",
"tn" => "whois.ati.tn"