首页
文章分类
逆向网安
中英演讲
杂类教程
学习笔记
前端开发
汇编
数据库
.NET
服务器
Python
Java
PHP
Git
算法
安卓开发
生活记录
读书笔记
作品发布
人体健康
网上邻居
留言板
关于我
Search
登录
1
利用AList搭建家庭个人影音库
5,240 阅读
2
浅尝Restful Fast Request插件,一句话完成 逆向过程
5,133 阅读
3
完美破解The Economist付费墙
3,600 阅读
4
i茅台app接口自动化csharp wpf实现,挂机windows服务器每日自动预约
3,324 阅读
5
青龙面板基本使用并添加修改微信/支付宝步数脚本
2,768 阅读
Search
标签搜索
PHP
Laravel
Python
前端
csharp
安卓逆向
JavaScript
Java
爬虫
抓包
Git
winform
android
Fiddler
Vue
selenium
LeetCode
每日一题
简单题
docker
Hygge
累计撰写
106
篇文章
累计收到
452
条评论
首页
栏目
逆向网安
中英演讲
杂类教程
学习笔记
前端开发
汇编
数据库
.NET
服务器
Python
Java
PHP
Git
算法
安卓开发
生活记录
读书笔记
作品发布
人体健康
页面
网上邻居
留言板
关于我
用户登录
搜索到
106
篇与
的结果
2025-09-03
逆向加密算法盘点与实例汇总
逆向加密算法盘点与实例汇总每次都要现查例子,先进行总结一篇。单向加密MD5SHA双向加密非对称加密RSA加密RSA加密算法是一种非对称加密算法,所谓非对称,就是指该算法加密和解密使用不同的密钥,即使用加密密钥进行加密、解密密钥进行解密。在RAS算法中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,由于无法计算出大数n的欧拉函数phi(N),所以不能根据PK计算出SK。也就是说,对极大整数做因数分解的难度决定了RSA算法的可靠性。理论上,只要其钥匙的长度n足够长,用RSA加密的信息实际上是不能被解破的。RSA算法通常是先生成一对RSA密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。公钥类型特性XML 格式PEM 格式外观纯文本,具有明显的 XML 标签(如 <RSAKeyValue>, <Modulus>)纯文本,具有明显的 -----BEGIN XXX----- 和 -----END XXX----- 标签编码方式通常使用 Base64 编码密钥参数(模数、指数等)通常是 Base64 编码的 DER(二进制)数据,也可以是纯二进制 DER常见扩展名.xml.pem, .key, .crt, .cer (注意:.crt/.cer 通常用于证书)标准/起源主要由 微软 .NET 生态系统使用和推广源于 OpenSSL 工具集,是互联网和 *nix 世界的事实标准包含内容非常明确地将密钥的每个组成部分(Modulus, Exponent, P, Q 等)分开存储一个封装容器,可以包含: - 私钥 - 公钥 - X.509 证书 - CSR(证书签名请求)可读性对开发者非常友好,结构清晰,易于解析和手动查看需要借助 openssl 等工具解析内容才能看清详细参数互操作性主要在 Windows/.NET 环境中流行,其他平台需要特定库解析通用性极强,被几乎所有开源库、语言和平台(如 Python, Java, Node.js, Go, PHP)广泛支持1. XML 格式这种格式将 RSA 密钥的每个数学组成部分都分解成独立的 XML 元素,并用 Base64 编码其值。公钥示例:<RSAKeyValue> <Modulus>xyz123...Abc=</Modulus> <!-- 模数 (n) --> <Exponent>AQAB</Exponent> <!-- 公钥指数 (e),通常是 65537 --> </RSAKeyValue>私钥示例 (包含更多参数):<RSAKeyValue> <Modulus>... </Modulus> <Exponent>... </Exponent> <P>... </P> <!-- 质数 p --> <Q>... </Q> <!-- 质数 q --> <DP>... </DP> <!-- d mod (p-1) --> <DQ>... </DQ> <!-- d mod (q-1) --> <InverseQ>... </InverseQ> <!-- (q^{-1} mod p) --> <D>... </D> <!-- 私钥指数 (d) --> </RSAKeyValue>特点:优点:结构清晰,可读性强,非常适合在配置文件中使用或在不同 .NET 服务间传递。缺点:在非 Windows 生态系统中不如 PEM 通用。2. PEM 格式PEM (Privacy-Enhanced Mail) 格式本质上是一个 文本化的容器,它使用 Base64 编码来包装二进制数据(通常是 DER 编码的 ASN.1 结构),并加上明确的首尾行标签。公钥示例:-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A... ...(Base64 编码数据)... -----END PUBLIC KEY-----私钥示例 (PKCS#8 格式):-----BEGIN PRIVATE KEY----- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgw... ...(Base64 编码数据)... -----END PRIVATE KEY-----传统的 PKCS#1 私钥格式:-----BEGIN RSA PRIVATE KEY----- ...(Base64 编码数据)... -----END RSA PRIVATE KEY-----实例1.Csharp版本(.NET FRAMEWORK)仅支持XML格式的公钥,PEM格式需要先调用RSAPublicKey进行转换Main.csusing System; using Demo.Helper; namespace RSADemo { class Program { static void Main(string[] args) { // 示例:PEM格式的公钥(通常以 -----BEGIN PUBLIC KEY----- 开头) string pemPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx4b..." + "(这里是完整的Base64编码PEM公钥内容,不包含首尾标签)"; // 1. 将PEM公钥转换为XML格式 string xmlPublicKey = RSAHelper.RSAPublicKey(pemPublicKey); Console.WriteLine("XML格式公钥:\n" + xmlPublicKey); // 2. 使用XML公钥加密数据 string plainText = "Hello, RSA加密测试!"; string encryptedText = RSAHelper.RSAEncrypt(xmlPublicKey, plainText); Console.WriteLine("\n加密结果(Base64):\n" + encryptedText); } } }RSAHelper.csusing System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; using Org.BouncyCastle.Crypto.Parameters; using Org.BouncyCastle.Security; namespace Demo.Helper { /// <summary> /// RSA工具类 /// </summary> public class RSAHelper { /// <summary> /// RSA公钥pem-->XML格式转换, /// </summary> /// <param name="publicKey">pem公钥</param> /// <returns></returns> public static string RSAPublicKey(string publicKey) { RsaKeyParameters publicKeyParam = (RsaKeyParameters)PublicKeyFactory.CreateKey(Convert.FromBase64String(publicKey)); string XML = string.Format("<RSAKeyValue><Modulus>{0}</Modulus><Exponent>{1}</Exponent></RSAKeyValue>", Convert.ToBase64String(publicKeyParam.Modulus.ToByteArrayUnsigned()), Convert.ToBase64String(publicKeyParam.Exponent.ToByteArrayUnsigned())); return XML; } /// <summary> /// RSA公钥加密数据 /// </summary> /// <param name="xmlPublicKey"></param> /// <param name="content"></param> /// <returns></returns> public static string RSAEncrypt(string xmlPublicKey, string content) { string encryptedContent = string.Empty; using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { rsa.FromXmlString(xmlPublicKey); byte[] encryptedData = rsa.Encrypt(Encoding.Default.GetBytes(content), false); encryptedContent = Convert.ToBase64String(encryptedData); } return encryptedContent; } } }对称加密AES加密AES是高级加密标准,在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,目前已经被全世界广泛使用,同时AES已经成为对称密钥加密中最流行的算法之一。AES支持三种长度的密钥:128位,192位,256位。加密原理1.密钥密钥是AES算法实现加密和解密的根本。对称加密算法之所以对称,是因为这类算法对明文的加密和解密需要使用同一个密钥。AES支持三种长度的密钥:128位,192位,256位平时大家所说的AES128,AES192,AES256,实际上就是指的AES算法对不同长度密钥的使用。2.填充要想了解填充的概念,我们先要了解AES的分组加密特性。什么是分组加密呢?我们来看看下面这张图:AES算法在对明文加密的时候,并不是把整个明文一股脑加密成一整段密文,而是把明文拆分成一个个独立的明文块,每一个明文块长度128bit。这些明文块经过AES加密器的复杂处理,生成一个个独立的密文块,这些密文块拼接在一起,就是最终的AES加密结果。假如一段明文长度是192bit,如果按每128bit一个明文块来拆分的话,第二个明文块只有64bit,不足128bit。这时候怎么办呢?就需要对明文块进行填充(Padding)。填充涉及以下三种填充模式:NoPadding:不做任何填充,但是要求明文必须是16字节的整数倍。PKCS5Padding(默认,是PKCS#7的子集):如果明文块少于8 字节块(如 DES/3DES),在明文块末尾补足相应数量的字符,且每个字节的值等于缺少的字符数。示例:明文 {1,2,3,4,5}(5 字节),需补 3 字节 → {1,2,3,4,5,3,3,3}。PKCS#7 Padding若明文长度不是块大小的整数倍(如 AES 的 16 字节),则在末尾补 n 个字节,每个字节的值均为 n。示例:明文 {1,2,3,4,5,a,b,c,d,e}(10 字节),需补 6 字节 → {1,2,3,4,5,a,b,c,d,e,6,6,6,6,6,6}。适用于块大小为 1~255 字节的算法(如 AES 的 16/24/32 字节块)。是 PKCS#5 的通用化版本(PKCS#5 仅支持 8 字节块)。ISO10126Padding:如果明文块少于16个字节(128bit),在明文块末尾补足相应数量的字节,最后一个字符值等于缺少的字符数,其他字符填充随机数。比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6个字节,则可能补全为{1,2,3,4,5,a,b,c,d,e,5,c,3,G,$,6}加密模式一、电码本模式(ECB)将整个明文分成若干段相同的小段,然后对每一小段进行加密。优点:操作简单,易于实现;分组独立,易于并行;误差不会被传送。——简单,可并行,不传送误差。缺点:掩盖不了明文结构信息,难以抵抗统计分析攻击。——可对明文进行主动攻击。二、密码分组链模式(CBC)先将明文切分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后,再与密钥进行加密。优点:能掩盖明文结构信息,保证相同密文可得不同明文,所以不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL和IPSec的标准。缺点:(1)不利于并行计算;(2)传递误差——前一个出错则后续全错;(3)第一个明文块需要与一个初始化向量IV进行抑或,初始化向量IV的选取比较复杂。初始化IV的选取方式:固定IV,计数器IV,随机IV(只能得到伪随机数,用的最多),瞬时IV(难以得到瞬时值)三、输出反馈模式(OFB)密码算法的输出(指密码key而不是密文)会反馈到密码算法的输入中,OFB模式并不是通过密码算法对明文直接加密,而是通过将明文分组和密码算法的输出进行XOR来产生密文分组。优点:隐藏了明文模式;结合了分组加密和流密码(分组密码转化为流模式);可以及时加密传送小于分组的数据。缺点:不利于并行计算;需要生成秘钥流;对明文的主动攻击是可能的。四 计数器模式(CTR)完全的流模式。将瞬时值与计数器连接起来,然后对此进行加密产生密钥流的一个密钥块,再进行XOR操作 。优点:不泄露明文;仅需实现加密函数;无需填充;可并行计算。缺点:需要瞬时值IV,难以保证IV的唯一性。五.密码反馈模式(CFB)把分组密码当做流密码使用,即密码反馈模式可将DES分组密码置换成流密码。流密码具有密文和明文长度一致、运行实时的性质,这样数据可以在比分组小得多的单元里进行加密。如果需要发送的每个字符长为8比特,就应使用8比特密钥来加密每个字符。如果长度超过8比特,则造成浪费。但是要注意,由于CFB模式中分组密码是以流密码方式使用,所以加密和解密操作完全相同,因此无法适用于公钥密码系统,只能适用于对称密钥密码系统。密码反馈模式也需要一个初始量,无须保密,但对每条消息必须有一个不同的初始量。优点:可以处理任意长度的消息,能适应用户不同数据格式的需要。可实现自同步功能。就有有限步的错误传播,除能获得保密性外,还可用于认证。缺点:对信道错误较敏感,且会造成错误传播。数据加密的速率被降低。AES算法流程AES加密算法涉及4种操作:字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。下图给出了AES加解密的流程,从图中可以看出:1、解密算法的每一步分别对应加密算法的逆操作;2、加解密所有操作的顺序正好是相反的。正是由于这几点(再加上加密算法与解密算法每步的操作互逆)保证了算法的正确性。加解密中每轮的密钥分别由种子密钥经过密钥扩展算法得到。算法中16字节的明文、密文和轮子密钥都以一个4x4的矩阵表示。AddRoundKey (轮密钥加)— 矩阵中的每一个字节都与该次轮密钥(round key)做XOR运算;每个子密钥由密钥生成方案产生。SubBytes(字节替代) — 通过非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。ShiftRows(行移位) — 将矩阵中的每个横列进行循环式移位。MixColumns (列混淆)— 为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每列的四个字节。以上为AES在加密中的大致流程。DES加密
2025年09月03日
2 阅读
0 评论
0 点赞
2025-09-02
发现个小技巧, 本地开发配置域名不用再修改hosts了
由于 windows hosts 文件配置域名只能一个个手动配置,不支持泛解析 (没有通配符)所以每次在本地新建个站点都需要打开 hosts 文件添加一条记录尝试搜索 windows hosts 通配符 , 没有找到解决方案,却无意间找到这么个曲线救国的办法~先说结论使用 .localhost 后缀的域名比如: my-site.localhost owladmin.localhost demo.shop.localhost …为什么要用,以及为什么能用本地搭建站点,配个域名更方便访问,更方便的管理多个不同的站点docker 容器运行起来后没法动态映射端口,部分程序需要通过 nginx 反向代理才能在本机访问.localhost 后缀的域名,会默认指向本地无需写入 hosts————————————————原文作者:slowlyo转自链接:https://learnku.com/articles/86228?order_by=created_at&版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。
2025年09月02日
2 阅读
0 评论
0 点赞
2025-06-17
北京农学院体育理论满分请求
用法:替换Cookie和examId 发送即可满分curl --location --request POST 'http://39.107.15.49:8081/pc/web/exam/assign' \ --header 'Pragma: no-cache' \ --header 'Proxy-Connection: keep-alive' \ --header 'X-Requested-With: XMLHttpRequest' \ --header 'Cookie: SHRIOSESSIONID=' \ --header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \ --header 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \ --header 'Accept: */*' \ --header 'Host: 39.107.15.49:8081' \ --header 'Connection: keep-alive' \ --data-urlencode 'examId=替换考试ID' \ --data-urlencode 'singleAnswer=single-1474-5129' \ --data-urlencode 'answer-1474=5129' \ --data-urlencode 'singleAnswer=single-1545-5412' \ --data-urlencode 'answer-1545=5412' \ --data-urlencode 'singleAnswer=single-1483-5164' \ --data-urlencode 'answer-1483=5164' \ --data-urlencode 'singleAnswer=single-1933-6603' \ --data-urlencode 'answer-1933=6603' \ --data-urlencode 'singleAnswer=single-1521-5318' \ --data-urlencode 'answer-1521=5318' \ --data-urlencode 'singleAnswer=single-1867-6367' \ --data-urlencode 'answer-1867=6367' \ --data-urlencode 'singleAnswer=single-1501-5238' \ --data-urlencode 'answer-1501=5238' \ --data-urlencode 'singleAnswer=single-1873-6389' \ --data-urlencode 'answer-1873=6389' \ --data-urlencode 'singleAnswer=single-1964-6721' \ --data-urlencode 'answer-1964=6721' \ --data-urlencode 'singleAnswer=single-1935-6608' \ --data-urlencode 'answer-1935=6608' \ --data-urlencode 'singleAnswer=single-1482-5162' \ --data-urlencode 'answer-1482=5162' \ --data-urlencode 'singleAnswer=single-1507-5261' \ --data-urlencode 'answer-1507=5261' \ --data-urlencode 'singleAnswer=single-1927-6581' \ --data-urlencode 'answer-1927=6581' \ --data-urlencode 'singleAnswer=single-1962-6714' \ --data-urlencode 'answer-1962=6714' \ --data-urlencode 'singleAnswer=single-1965-6723' \ --data-urlencode 'answer-1965=6723' \ --data-urlencode 'singleAnswer=single-1490-5192' \ --data-urlencode 'answer-1490=5192' \ --data-urlencode 'singleAnswer=single-1535-5372' \ --data-urlencode 'answer-1535=5372' \ --data-urlencode 'singleAnswer=single-1537-5382' \ --data-urlencode 'answer-1537=5382' \ --data-urlencode 'singleAnswer=single-1888-6443' \ --data-urlencode 'answer-1888=6443' \ --data-urlencode 'singleAnswer=single-1480-5152' \ --data-urlencode 'answer-1480=5152' \ --data-urlencode 'singleAnswer=single-1891-6452' \ --data-urlencode 'answer-1891=6452' \ --data-urlencode 'singleAnswer=single-1902-6493' \ --data-urlencode 'answer-1902=6493' \ --data-urlencode 'singleAnswer=single-1531-5356' \ --data-urlencode 'answer-1531=5356' \ --data-urlencode 'singleAnswer=single-1894-6463' \ --data-urlencode 'answer-1894=6463' \ --data-urlencode 'singleAnswer=single-1540-5391' \ --data-urlencode 'answer-1540=5391' \ --data-urlencode 'multipleAnswer=multiple-2154-16227,16225,16223,16224,16226,' \ --data-urlencode 'answer-2154=16227' \ --data-urlencode 'answer-2154=16225' \ --data-urlencode 'answer-2154=16223' \ --data-urlencode 'answer-2154=16224' \ --data-urlencode 'answer-2154=16226' \ --data-urlencode 'multipleAnswer=multiple-2081-7139,7138,7137,' \ --data-urlencode 'answer-2081=7139' \ --data-urlencode 'answer-2081=7138' \ --data-urlencode 'answer-2081=7137' \ --data-urlencode 'multipleAnswer=multiple-2101-15870,15872,15869,15873,15871,15868,' \ --data-urlencode 'answer-2101=15870' \ --data-urlencode 'answer-2101=15872' \ --data-urlencode 'answer-2101=15869' \ --data-urlencode 'answer-2101=15873' \ --data-urlencode 'answer-2101=15871' \ --data-urlencode 'answer-2101=15868' \ --data-urlencode 'multipleAnswer=multiple-2157-16288,16286,16287,16289,16290,' \ --data-urlencode 'answer-2157=16288' \ --data-urlencode 'answer-2157=16286' \ --data-urlencode 'answer-2157=16287' \ --data-urlencode 'answer-2157=16289' \ --data-urlencode 'answer-2157=16290' \ --data-urlencode 'multipleAnswer=multiple-2036-6976,6975,6977,' \ --data-urlencode 'answer-2036=6976' \ --data-urlencode 'answer-2036=6975' \ --data-urlencode 'answer-2036=6977' \ --data-urlencode 'multipleAnswer=multiple-2103-15899,15900,15898,' \ --data-urlencode 'answer-2103=15899' \ --data-urlencode 'answer-2103=15900' \ --data-urlencode 'answer-2103=15898' \ --data-urlencode 'multipleAnswer=multiple-2064-7078,7079,7077,' \ --data-urlencode 'answer-2064=7078' \ --data-urlencode 'answer-2064=7079' \ --data-urlencode 'answer-2064=7077' \ --data-urlencode 'multipleAnswer=multiple-2121-16000,15999,16001,15998,' \ --data-urlencode 'answer-2121=16000' \ --data-urlencode 'answer-2121=15999' \ --data-urlencode 'answer-2121=16001' \ --data-urlencode 'answer-2121=15998' \ --data-urlencode 'multipleAnswer=multiple-2138-16126,16128,16127,' \ --data-urlencode 'answer-2138=16126' \ --data-urlencode 'answer-2138=16128' \ --data-urlencode 'answer-2138=16127' \ --data-urlencode 'multipleAnswer=multiple-2025-15345,15348,' \ --data-urlencode 'answer-2025=15345' \ --data-urlencode 'answer-2025=15348' \ --data-urlencode 'judgeAnswer=judge-2223-7584' \ --data-urlencode 'answer-2223=7584' \ --data-urlencode 'judgeAnswer=judge-2284-7711' \ --data-urlencode 'answer-2284=7711' \ --data-urlencode 'judgeAnswer=judge-2206-7547' \ --data-urlencode 'answer-2206=7547' \ --data-urlencode 'judgeAnswer=judge-2161-7448' \ --data-urlencode 'answer-2161=7448' \ --data-urlencode 'judgeAnswer=judge-2180-7491' \ --data-urlencode 'answer-2180=7491' \ --data-urlencode 'judgeAnswer=judge-2253-7649' \ --data-urlencode 'answer-2253=7649' \ --data-urlencode 'judgeAnswer=judge-2171-7471' \ --data-urlencode 'answer-2171=7471' \ --data-urlencode 'judgeAnswer=judge-2211-7556' \ --data-urlencode 'answer-2211=7556' \ --data-urlencode 'judgeAnswer=judge-2252-7648' \ --data-urlencode 'answer-2252=7648' \ --data-urlencode 'judgeAnswer=judge-2254-7651' \ --data-urlencode 'answer-2254=7651' \ --data-urlencode 'judgeAnswer=judge-2199-7530' \ --data-urlencode 'answer-2199=7530' \ --data-urlencode 'judgeAnswer=judge-2183-7499' \ --data-urlencode 'answer-2183=7499' \ --data-urlencode 'judgeAnswer=judge-2225-7588' \ --data-urlencode 'answer-2225=7588' \ --data-urlencode 'judgeAnswer=judge-2251-7645' \ --data-urlencode 'answer-2251=7645' \ --data-urlencode 'judgeAnswer=judge-2257-7658' \ --data-urlencode 'answer-2257=7658' \ --data-urlencode 'judgeAnswer=judge-2237-7614' \ --data-urlencode 'answer-2237=7614' \ --data-urlencode 'judgeAnswer=judge-2176-7483' \ --data-urlencode 'answer-2176=7483' \ --data-urlencode 'judgeAnswer=judge-2160-7447' \ --data-urlencode 'answer-2160=7447' \ --data-urlencode 'judgeAnswer=judge-2216-7569' \ --data-urlencode 'answer-2216=7569' \ --data-urlencode 'judgeAnswer=judge-2177-7485' \ --data-urlencode 'answer-2177=7485'
2025年06月17日
21 阅读
0 评论
0 点赞
2025-05-21
Anaconda的Python环境使用
简述安装完 Anaconda 会自带一个Base环境, 该环境是包含 Conda 自带的 Python 和基础工具(如 pip、conda 命令)。如果直接在此环境中安装大量第三方包,可能导致:依赖冲突:不同包对同一依赖的版本要求不同(例如 numpy 的版本冲突)。环境臃肿:base 环境被污染,影响其他项目的独立性。因此,建议创建独立的环境,然后在其中安装所需的包。Conda 的包管理机制独立环境管理Conda 不仅管理 Python 包,还能管理非 Python 依赖(如 OpenSSL、C++ 库等)。每个 Conda 环境(包括 base)都有自己独立的 bin(或 Scripts)目录和 site-packages 目录。全局可执行文件(关键区别)Conda 在安装某些工具(如 mitmproxy)时,会在环境的 bin(Linux/macOS)或 Scripts(Windows)目录下生成可执行文件(如 mitmproxy.exe)。如果 Conda 的 base 环境被添加到系统 PATH 中,这些命令就可以全局调用。例如,conda install mitmproxy 会在 %CONDA_PREFIX%\Scripts\mitmproxy.exe 生成可执行文件,如果 %CONDA_PREFIX%\Scripts 在 PATH 里,就能全局运行。常用命令# Conda操作: # 1. 安装全局包时使用 conda install -c conda-forge mitmproxy # conda install # Conda 的核心命令,用于安装指定软件包。 # -c conda-forge # 指定从 conda-forge 渠道(社区维护的软件仓库)下载包。conda-forge 通常提供更新更全的软件版本。 # mitmproxy # 目标软件包名称,即交互式 HTTPS 代理工具。 # Python环境操作: # 1.创建新环境并指定环境的Python版本 conda create --name env_name python=version 例如: conda create --name python36 python=3.6 # 2.激活环境 activate env_name # 3.关闭环境 deactivate env_name # 4.删除环境 conda env remove -n env_name # 5.显示所有环境 conda env list # 6.查看anaconda中已经存在的镜像源 conda config --show channels # 7.添加镜像源(永久添加) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ # 8.设置搜索时显示通道地址 conda config --set show_channel_urls yes
2025年05月21日
16 阅读
0 评论
0 点赞
2025-04-12
finalshell 4.5 离线码计算 破解专业版高级版
!pip install pycryptodome from Crypto.Hash import keccak from Crypto.Hash import MD5 def md5(msg): hash_obj = MD5.new(msg) return hash_obj.hexdigest() def keccak384(msg): hash_obj = keccak.new(data=msg, digest_bits=384) return hash_obj.hexdigest() if __name__ == '__main__': code = input('输入机器码: ') print('版本号 < 3.9.6 (旧版)') print('高级版:', md5(f'61305{code}8552'.encode())[8:24]) print('专业版:', md5(f'2356{code}13593'.encode())[8:24]) print('版本号 >= 3.9.6 (新版)') print('高级版:', keccak384(f'{code}hSf(78cvVlS5E'.encode())[12:28]) print('专业版:', keccak384(f'{code}FF3Go(*Xvbb5s2'.encode())[12:28]) print('版本号 (4.5)') print('高级版:', keccak384(f'{code}wcegS3gzA$'.encode())[12:28]) print('专业版:', keccak384(f'{code}b(xxkHn%z);x'.encode())[12:28])我直接在Colab中运行的,激活成功了
2025年04月12日
48 阅读
0 评论
0 点赞
2025-03-07
解决Node Electron下调用Python脚本输出中文乱码的问题
解决Node Electron下调用Python脚本输出中文乱码的问题调用Pyinstaller打包后的可执行文件方式如下:import { promisify } from 'util' import { exec } from 'child_process' import { app } from 'electron' async handleVerifyZy(id) { const entity = await this.findById(id) const execPromise = promisify(exec) let args = `-a 202501 -c community-sample.json -r resident-sample.json -t ${entity.timestamp}` const verifyOutput = await execPromise( `verify.exe ${args}` ) // 正常运行结束需要取出结果的excel let outputExcelName = join( app.getPath('userData'), 'verify_result', `${entity.timestamp}_monthly_zy_analysis_result.xlsx` ) return { outputExcelName, verifyOutput } }打印在渲染层发现标准输出的中文乱码需要修改Python脚本,定义全局的stdout的编码# encoding:utf-8 import io import sys sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding="utf-8")打包后再次调用,问题解决参考1.nodejs调用python输出中文乱码的问题:https://blog.csdn.net/qq_40185480/article/details/105910329
2025年03月07日
35 阅读
0 评论
0 点赞
2025-02-07
初试编写油猴脚本
每日闲逛吾爱破解发现发现有人求脚本:https://www.52pojie.cn/thread-2003050-1-1.html就是让百度首页底部的关注栏变宽,简单的CSS修改一下就可以用的框架为vite-plugin-monkey : https://github.com/lisonge/vite-plugin-monkey最后打包后的代码如下:// ==UserScript== // @name make-baidu-weightify // @namespace npm/vite-plugin-monkey // @version 0.0.0 // @author monkey // @icon https://vitejs.dev/logo.svg // @match https://www.baidu.com/ // @require https://cdn.jsdelivr.net/npm/vue@3.5.13/dist/vue.global.prod.js // ==/UserScript== (function () { 'use strict'; (function() { function init() { const mainElement = document.getElementById("s_main"); if (mainElement) { mainElement.classList.remove("c-wrapper-hot-news-all"); } const styleElement = document.createElement("style"); styleElement.textContent = ` .san-card > div { width: 100% !important; } .site-wrapper > div { width: 100% !important; } .site-wrapper > div > div { width: 100% !important; } `; document.head.appendChild(styleElement); } console.log("baidu-weightify"); if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", init); } else { init(); } })(); })();引用:1.【轻松上手】油猴脚本开发:https://juejin.cn/post/7022654292880424991#heading-132.油猴脚本开发指南教程目录:https://bbs.tampermonkey.net.cn/thread-184-1-1.html
2025年02月07日
36 阅读
0 评论
0 点赞
2025-02-04
宝藏插件:东方永页机 - 自动加载下一页
看一些漫画、论坛、新闻的时候总是有页码,使用这个插件就可以实现自动加载了https://pagetual.hoothin.com/cn/配合下面的使用更佳:https://chromewebstore.google.com/detail/ignore-x-frame-headers/gleekbfjekiniecknbkamfmkohkpodhe
2025年02月04日
44 阅读
0 评论
0 点赞
2024-12-19
解决Fiddler代理 Python Request请求报错Unable to get local issuer certificate
1.查询Python Requests默认调用的cert证书位置import certifi certifi.where()如果提示没有certifi,需要安装certifi包(pip install certifi)2.配置fiddler,打开 127.0.0.1:8888下载证书文件并导出base64编码3.将第三步中导出的证书信息复制出来,粘贴到第一步中输出cacert.pem文件末尾,保存重新运行代码,即可。引用Unable to get local issuer certificate when using requests:https://stackoverflow.com/questions/51925384/unable-to-get-local-issuer-certificate-when-using-requests-in-python执行python时,使用fiddler代理,提示Unable to get local issuer certificate when using requests in python:https://blog.csdn.net/iKaChu/article/details/106787413
2024年12月19日
26 阅读
0 评论
0 点赞
2024-12-19
NW.js将Web端打包成客户端安装包
NW.js将Web端打包成客户端安装包前言项目交付时需要将Web端后台入口打包成exe安装在客户电脑上,本文记录一下操作流程。使用csharp为客户端封装壳的时候,打包建议使用.NET Framework 3.5.1 SP1作为构建框架,可以支持Windows7系统,我当时使用了4.8打包的程序无法在Windows7中打开,结果现场在客户机器上操作一番装其他的环境才得以解决。各系统的支持情况如下:Windows版本自带的.NET Framework 版本Windows 7.NET Framework 3.5.1 SP1Windows 7 SP1.NET Framework 3.5.1 SP1Windows 8.NET Framework 3.5.1 SP1 + 4.5本文不涉及套壳,套壳当时只是为了校验客户机的mac地址。一、创建app.nwapp.nw就是打包后的web页面,操作流程如下:1.使用Npm初始化一个含package.json的目录package.json如下,参数基本一眼就知道什么作用{ "name": "大兴社保", "main": "index.html", "version": "1.0.0", "window": { "frame": true, "icon": "logo.jpg", "width": 1400, "height": 1100, "position": "center", "resizable": true, "show_in_taskbar":true } }2.创建一个重定向页面index.html:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>大兴社保</title> <script> window.location.href = "https://xxx/login.html"; </script> </head> <body> </body> </html>3.全选当前目录下所有文件压缩成.zip后更名为.nw二、封入nw.js我预览使用的是nwjs-sdk-v0.93.0-win-x64开发版本,可以打开开发者工具进行调试最后分别使用nwjs-v0.45.0-win-ia32和nwjs-v0.45.0-win-x64进行成果打包1.预览app.nw直接将上一步骤打包并更名的app.nw使用nwjs-sdk中的nw.exe打开显示没有问题,就进行打包操作,出现问题可以按F12进行调试。将app.nw移至nw.exe同目录,输入如下命令进行合并$ copy /b nw.exe+[fileName].nw [output].exe eg: copy /b nw.exe+app.nw dxsb.exe至此打包完成,在nw.exe所在文件目录下已生成可执行文件。然后使用Resource Hacker进行修改icon该可执行文件依赖于目录下的其他文件,若需要单独运行,还得继续封包三、打成安装包使用Inno Setup来打包成安装程序,即将一开始的web应用源文件和node-webkit的nw.exe和环境dll直接压缩成一个安装文件,用户在使用你的exe后会出现setup wizard把程序安装到Program Files目录中,将nw.exe,dll,web应用释放出来,这个时候所生成的安装文件其实size会小很多。这一步添加上主执行文件和依赖文件夹即可成功运行引用nwjs: https://nwjs.io/基于NW.JS全屏无边框程序将HTML打包成可执行文件.EXE: https://blog.csdn.net/suoyue_py/article/details/105469271修改 node-webkit 的默认图标:https://keenwon.com/1311/
2024年12月19日
52 阅读
0 评论
0 点赞
1
2
...
11