推荐 最新
UX_siri

求助一个PHP加密解密 不区分大小写 的函数?

PHP语言: 比如字符串 $s = '2_中文'; 加密后得到的加密字符串,必须全部是小写, 不能有特殊符号。 主要是用于做 二级域名。 比如:xxx.abc.com 其中 xxx 就是 $s 加密后的字符串。 程序里面获取 HTTP_HOST,得到 xxx, 然后解密并得到 $s。 下面这段是我在网上找的,不知道有没什么bug。 function encode32($str) { $BASE32_ALPHABET = 'abcdefghijklmnopqrstuvwxyz234567'; $output = ''; $v = 0; $vbits = 0; for ($i = 0, $j = strlen($str); $i = 5) { $vbits -= 5; $output .= $BASE32_ALPHABET[$v >> $vbits]; $v &= ((1 0) { $v = 'a' && $str[$i] = '2' && $str[$i] = 8){ $vbits -= 8; $output .= chr($v >> $vbits); $v &= ((1 << $vbits) - 1); } } return $output; } $s = '2_中文'; $jiami = encode32($s); $jiemi = decode32($jiami); echo '原始:'.$s.'---加密后:'.$jiami.'===解密后:'.$jiemi;

10
1
0
浏览量218
开挂思想家

这种UE加密文件有解密的方法吗?

https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241002/cb52a7465a929cad27c2a843fa730bc2.png 这种UE加密文件有解密的方法吗?让它恢复加密前的格式 这种触及知识盲区了,不知道该怎样尝试

0
1
0
浏览量193
codbad

在Python中运行js为什么会报错?

在Python中运行js报错,在js和Python中都打印过相关类型和值了,都没问题,这是怎么回事啊? 报错和异常为: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240924/fc44922145aea9c54146bd839b777bd9.png) import requests import execjs import sys import io # 设置默认编码为utf-8 sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') cookies = { 'sajssdk_2015_cross_new_user': '1', 'sensorsdata2015jssdkcross': '%7B%22distinct_id%22%3A%2219024c17c022c2-0219b491cdda7ee-4c657b58-1327104-19024c17c038c1%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E8%87%AA%E7%84%B6%E6%90%9C%E7%B4%A2%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fwww.baidu.com%2Flink%22%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTkwMjRjMTdjMDIyYzItMDIxOWI0OTFjZGRhN2VlLTRjNjU3YjU4LTEzMjcxMDQtMTkwMjRjMTdjMDM4YzEifQ%3D%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%22%3A%2219024c17c022c2-0219b491cdda7ee-4c657b58-1327104-19024c17c038c1%22%7D', } headers = { 'Accept': 'application/json, text/plain, */*', 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive', 'DNT': '1', 'Pragma': 'no-cache', 'Referer': 'https://www.swhysc.com/swhysc/financial/marginTradingList?channel=00010017000300020001&listId=2', 'Sec-Fetch-Dest': 'empty', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Site': 'same-origin', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0', 'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Microsoft Edge";v="126"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', } params = { 'secuCode': '', 'market': '', 'orderFlag': '', 'pageNum': '1', 'pageSize': '10', } response = requests.get( 'https://www.swhysc.com/swhysc/interface/dsinfo/v1/margin/deposit/ratio', params=params, cookies=cookies, headers=headers, ) # 检查响应状态码 if response.status_code == 200: try: # 获取响应内容的UTF-8解码字符串 response_text = str(response.content.decode('utf-8')) print(type(response_text)) decrypted_text = execjs.compile(open('./decrypt.js', 'r', encoding='utf-8').read()).call('decrypt', response_text) # 打印解密后的文本 print("Decrypted response:", decrypted_text) except execjs.ProgramError as e: print(f"JavaScript error: {e}") except FileNotFoundError: print("JavaScript file 'decrypt.js' not found.") except UnicodeDecodeError as e: print(f"Encoding error: {e}") except ValueError as e: print(f"Value error: {e}") except Exception as e: print(f"An unexpected error occurred: {e}") else: print(f"Failed to fetch data: {response.status_code}") // @charset "UTF-8"; const CryptoJs = require('crypto-js'); function decrypt(t) { // return typeof t.replace(/\s+/g, '') // t = t.replace(/\s+/g, '') // 判断t是否为空 // if (t === '' || t === null || t === undefined) { // return 't为空' // } var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "" , r = 'rewin-swhysc1234' , i = CryptoJs.enc.Utf8.parse(r) , o = CryptoJs.AES.decrypt(t, i, { mode: CryptoJs.mode.ECB, padding: CryptoJs.pad.Pkcs7 }); return CryptoJs.enc.Utf8.stringify(o).toString() } // // var ans = decrypt('I9Z12I0KnbyLBPtcgpYe7w48OHv1UCCmgTdiBdxFCN/2 YdTCn2m2UO3L20J8MUhRWkTnWM2t3JYft4y8sbT2uFfJGT/qAw3ufFlagtl3WrksWKyIrd/D68XVmUfKCUqIk3CdnI5jDk3iTh30nemjYbfjNJ18iIz/6 J7Ey/rjNOoeqO9L7P+4 IcOhGBps5oR0myWuXd66nTVL2IIR0QWh1H2D+6 Hi6QU20uf8AP1S6SRahLtNg9Hu6O7Mf/0 HEIOv7SyycXQWot+8 C7QSttE0O5NwnZyOYw5N4k4d9J3po2G34zSdfIiM/+iexMv64zTqHqjvS+z/uCHDoRgabOaEdJslrl3eup01S9iCEdEFodSFAEHd1VIVR5DKwpZBAjVTnCruUgY8qGogDdVY6kn0QHKkzF8g9/dF0HYnZsrd4OlL0F9nDpuC2AbYJQO2Pfu8vH9xKYRwT9sJNUP+VaJwgwv3N3j8OwMExxpUQd970kJU5KSNw2ZmyPF3nt9xbvwFyU0SKxy2t8BgKJ0QKTKp1QrvJ/ICOe69/RbWADyQ9DH9KnHIA30I6Pi/O3/k+CKmS9BfZw6bgtgG2CUDtj37vLx/cSmEcE/bCTVD/lWicIML9zd4/DsDBMcaVEHfe9JCVOSkjcNmZsjxd57fcW78BfuoiRDBGWYxYp53nFXAD87BADkYIgDY7wK1pLrVJ9AluOp51JngjhWL1MavtNAkxUvQX2cOm4LYBtglA7Y9+7 y8f3EphHBP2wk1Q/5 VonCDC/c3ePw7AwTHGlRB33vSQlTkpI3DZmbI8Xee33Fu/AWdiKG98vm5usxvND86B26RYZiEPfL782YXcKik2EA8pVo733+Q0XiOD5dgchwGZ7VL0F9nDpuC2AbYJQO2Pfu8vH9xKYRwT9sJNUP+VaJwgwv3N3j8OwMExxpUQd970kJU5KSNw2ZmyPF3nt9xbvwFFju9ytILrmcuAf3SQ3Lzi0uFvaiisl4s8hH+GyGCcdsZ2w3Dwe2yFh6o1wHF15joLeqxGAh5EenqHpBgLjqRvnivK/lqgBIuNtJxlAY8Ec0h5nkp3DOPTSe5JO8QOPa0CDPzY/KYRVwptDi/CNU8prx0PmycbtW+LH6dU5vkOvofzkF23dfk82zbzHnLdPItGdsNw8HtshYeqNcBxdeY6C3qsRgIeRHp6h6QYC46kb54ryv5aoASLjbScZQGPBHNIeZ5Kdwzj00nuSTvEDj2tAgz82PymEVcKbQ4vwjVPKYcQuyFY8G7wTZxum9a2V1S8xxN7ueChtOgQTljc5MO3YfCmazrOsosvym7EEKyhm21LeSqEmvORLQhOA8UkJBQk3KCHdli/IrNTryK2S+gkLfjNJ18iIz/6 J7Ey/rjNOq2bwJ6/rhcT0Mi8B00PwT39ezVkikOyo9oNJ2D6rACsAeND2PPeK8B2oWjquKYLqpWh62/Vv+sunWhY9ufBzVSoYtnsxTK3xPuVtozXjSdncTOjc2anlMGX6chWnYmKfG8f3EphHBP2wk1Q/5 VonCD2Xmkd1xQpqYfh+P6lXeG9a1zvmKPXa5aSB //eVlLdtwQuiva3JxUfgjZg3OU9r4ddfWzJCC6ISelC8tVGz3cO28z8QMxCLnRh8k1GHEkv6MH0HdTpni3QaeEFuFfBaUUBU4CPtjN7EpIu1uwKCgHQqNnNHhYSQhY80UsL6jlOKU=') // data = '6KDOcfPapJ6hKibgzqA+R3QYhTiTJPuhUk2IRIGFrDz2YdTCn2m2UO3L20J8MUhRWkTnWM2t3JYft4y8sbT2uFfJGT/qAw3ufFlagtl3WrksWKyIrd/D68XVmUfKCUqIk3CdnI5jDk3iTh30nemjYbfjNJ18iIz/6J7Ey/rjNOoeqO9L7P+4IcOhGBps5oR0myWuXd66nTVL2IIR0QWh1H2D+6Hi6QU20uf8AP1S6SRahLtNg9Hu6O7Mf/0HEIOv7SyycXQWot+8C7QSttE0O5NwnZyOYw5N4k4d9J3po2G34zSdfIiM/+iexMv64zTqHqjvS+z/uCHDoRgabOaEdJslrl3eup01S9iCEdEFodSFAEHd1VIVR5DKwpZBAjVTnCruUgY8qGogDdVY6kn0QHKkzF8g9/dF0HYnZsrd4OlL0F9nDpuC2AbYJQO2Pfu8vH9xKYRwT9sJNUP+VaJwgwv3N3j8OwMExxpUQd970kJU5KSNw2ZmyPF3nt9xbvwFyU0SKxy2t8BgKJ0QKTKp1QrvJ/ICOe69/RbWADyQ9DH9KnHIA30I6Pi/O3/k+CKmS9BfZw6bgtgG2CUDtj37vLx/cSmEcE/bCTVD/lWicIML9zd4/DsDBMcaVEHfe9JCVOSkjcNmZsjxd57fcW78BfuoiRDBGWYxYp53nFXAD87BADkYIgDY7wK1pLrVJ9AluOp51JngjhWL1MavtNAkxUvQX2cOm4LYBtglA7Y9+7y8f3EphHBP2wk1Q/5VonCDC/c3ePw7AwTHGlRB33vSQlTkpI3DZmbI8Xee33Fu/AWdiKG98vm5usxvND86B26RYZiEPfL782YXcKik2EA8pVo733+Q0XiOD5dgchwGZ7VL0F9nDpuC2AbYJQO2Pfu8vH9xKYRwT9sJNUP+VaJwgwv3N3j8OwMExxpUQd970kJU5KSNw2ZmyPF3nt9xbvwFFju9ytILrmcuAf3SQ3Lzi0uFvaiisl4s8hH+GyGCcdsZ2w3Dwe2yFh6o1wHF15joLeqxGAh5EenqHpBgLjqRvnivK/lqgBIuNtJxlAY8Ec0h5nkp3DOPTSe5JO8QOPa0CDPzY/KYRVwptDi/CNU8prx0PmycbtW+LH6dU5vkOvofzkF23dfk82zbzHnLdPItGdsNw8HtshYeqNcBxdeY6C3qsRgIeRHp6h6QYC46kb54ryv5aoASLjbScZQGPBHNIeZ5Kdwzj00nuSTvEDj2tAgz82PymEVcKbQ4vwjVPKYcQuyFY8G7wTZxum9a2V1S8xxN7ueChtOgQTljc5MO3YfCmazrOsosvym7EEKyhm21LeSqEmvORLQhOA8UkJBQk3KCHdli/IrNTryK2S+gkLfjNJ18iIz/6J7Ey/rjNOq2bwJ6/rhcT0Mi8B00PwT39ezVkikOyo9oNJ2D6rACsAeND2PPeK8B2oWjquKYLqpWh62/Vv+sunWhY9ufBzVSoYtnsxTK3xPuVtozXjSdncTOjc2anlMGX6chWnYmKfG8f3EphHBP2wk1Q/5VonCD2Xmkd1xQpqYfh+P6lXeG9a1zvmKPXa5aSB//eVlLdtwQuiva3JxUfgjZg3OU9r4ddfWzJCC6ISelC8tVGz3cO28z8QMxCLnRh8k1GHEkv6MH0HdTpni3QaeEFuFfBaUUWWQwq+jos0FK0ybYTfhfCZGHpAoB1/3KDvuH74/49Dk=' // // 祛除空格 // // data = 'MrTEb/rHDzFPWWOL17/fXR5fU5M94+f0XogWzbwDbK72YdTCn2m2UO3L20J8MUhRWkTnWM2t3JYft4y8sbT2uFfJGT/qAw3ufFlagtl3WrksWKyIrd/D68XVmUfKCUqIk3CdnI5jDk3iTh30nemjYbfjNJ18iIz/6 J7Ey/rjNOoeqO9L7P+4 IcOhGBps5oR0myWuXd66nTVL2IIR0QWh1H2D+6 Hi6QU20uf8AP1S6SRahLtNg9Hu6O7Mf/0 HEIOv7SyycXQWot+8 C7QSttE0O5NwnZyOYw5N4k4d9J3po2G34zSdfIiM/+iexMv64zTqHqjvS+z/uCHDoRgabOaEdJslrl3eup01S9iCEdEFodSFAEHd1VIVR5DKwpZBAjVTnCruUgY8qGogDdVY6kn0QHKkzF8g9/dF0HYnZsrd4OlL0F9nDpuC2AbYJQO2Pfu8vH9xKYRwT9sJNUP+VaJwgwv3N3j8OwMExxpUQd970kJU5KSNw2ZmyPF3nt9xbvwFyU0SKxy2t8BgKJ0QKTKp1QrvJ/ICOe69/RbWADyQ9DH9KnHIA30I6Pi/O3/k+CKmS9BfZw6bgtgG2CUDtj37vLx/cSmEcE/bCTVD/lWicIML9zd4/DsDBMcaVEHfe9JCVOSkjcNmZsjxd57fcW78BfuoiRDBGWYxYp53nFXAD87BADkYIgDY7wK1pLrVJ9AluOp51JngjhWL1MavtNAkxUvQX2cOm4LYBtglA7Y9+7 y8f3EphHBP2wk1Q/5 VonCDC/c3ePw7AwTHGlRB33vSQlTkpI3DZmbI8Xee33Fu/AWdiKG98vm5usxvND86B26RYZiEPfL782YXcKik2EA8pVo733+Q0XiOD5dgchwGZ7VL0F9nDpuC2AbYJQO2Pfu8vH9xKYRwT9sJNUP+VaJwgwv3N3j8OwMExxpUQd970kJU5KSNw2ZmyPF3nt9xbvwFFju9ytILrmcuAf3SQ3Lzi0uFvaiisl4s8hH+GyGCcdsZ2w3Dwe2yFh6o1wHF15joLeqxGAh5EenqHpBgLjqRvnivK/lqgBIuNtJxlAY8Ec0h5nkp3DOPTSe5JO8QOPa0CDPzY/KYRVwptDi/CNU8prx0PmycbtW+LH6dU5vkOvofzkF23dfk82zbzHnLdPItGdsNw8HtshYeqNcBxdeY6C3qsRgIeRHp6h6QYC46kb54ryv5aoASLjbScZQGPBHNIeZ5Kdwzj00nuSTvEDj2tAgz82PymEVcKbQ4vwjVPKYcQuyFY8G7wTZxum9a2V1S8xxN7ueChtOgQTljc5MO3YfCmazrOsosvym7EEKyhm21LeSqEmvORLQhOA8UkJBQk3KCHdli/IrNTryK2S+gkLfjNJ18iIz/6 J7Ey/rjNOq2bwJ6/rhcT0Mi8B00PwT39ezVkikOyo9oNJ2D6rACsAeND2PPeK8B2oWjquKYLqpWh62/Vv+sunWhY9ufBzVSoYtnsxTK3xPuVtozXjSdncTOjc2anlMGX6chWnYmKfG8f3EphHBP2wk1Q/5 VonCD2Xmkd1xQpqYfh+P6lXeG9a1zvmKPXa5aSB //eVlLdtwQuiva3JxUfgjZg3OU9r4ddfWzJCC6ISelC8tVGz3cO28z8QMxCLnRh8k1GHEkv6MH0HdTpni3QaeEFuFfBaUUZ3Ay73q6jDolMiufrP7V/NGQtrR8+G0lge3XTyDhoXY=' // data = data.replace(/\s+/g, '') // ans = decrypt(data) // console.log(ans) 我首先对参数进行了确认,确认参数为正确格式,且值为正常的。 // return typeof t.replace(/\s+/g, '') // t = t.replace(/\s+/g, '') // 判断t是否为空 // if (t === '' || t === null || t === undefined) { // return 't为空' // } 其次关于编码问题 我在js顶端加了 // @charset "UTF-8"; 在Python中用的 # 设置默认编码为utf-8 sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') # 检查响应状态码 if response.status_code == 200: try: # 获取响应内容的UTF-8解码字符串 response_text = str(response.content.decode('utf-8')) print(type(response_text)) decrypted_text = execjs.compile(open('./decrypt.js', 'r', encoding='utf-8').read()).call('decrypt', response_text)

0
1
0
浏览量201
我头像最美

PHP对接中行国密解密的解决方案或者demo?

php 对接中行 国密加密解密 文档给的都是java的处理 用php怎么实现项目都是用php写的获取接口返回的加密数据后需要解密使用 自己只会用 php java 上面基本算是小白 看过有些大神用 php-java-bridge 此种方式这种方式做的跨语言解决。还需要写 java 代码封装 jar。这块因为不会 java 果断放弃了,如果有会 java 的可以查看 "https://blog.csdn.net/qq_34585882/article/details/79581982" (https://link.segmentfault.com/?enc=Fa%2ByP1ZHYGPiiD4XR7isPw%3D%3D.IZNWhFkUv3V%2Bs18bs2dRUG3Zzy0crEUOM3TgRjK19Raqim0%2Bp4tBfGyO%2F7NReTUXARXUSkJ6tkRBnpLXPAZ9%2Bw%3D%3D) 好了还是说说 php 怎么实现吧,自己看了很多文档尝试用 用了这个人家写好的 php sm2sm3sm4 项目目录预览 - phpsm2sm3sm4 - GitCode 按照文档已经配置 composer require lpilp/guomi php7.4 已打开 gmp 组件支持 把中行给的返回加密数据和秘钥都直接传入到 $sm2->doDecrypt () 方法内: public function ceshi() { $sm2 = new RtSm2(); $publicKey = 'MFkwEwYHKoZIzj0CAQXXXXX1UBgi0DQgAEpg8H6Rou4UnDMGYs5qORGFkN6A4NlhIrk2AGWkTbS2B3QLKHMINDqhYAl024rzpTxaqbTq2w5sSFzgrEV28jkw=='; // 公钥 $privateKey = 'MIGTAgEAMBMGXXXXXXXAgEGCCqBHM9VAYItBHkwdwIBAQQgxWPNwsJu6Lq0xhPN2+2lVhyBir6BfJYXrR+MPpkwNhKgCgYIKoEcz1UBgi2hRANCAASmDwfpGi7hScMwZizmo5EYWQ3oDg2WEiuTYAZaRNtLYHdAsocwg0OqFgCXTbivOlPFqptOrbDmxIXOCsRXbyOT'; // 私钥 $skey = 'BONAPTWbfU7NhnRvZgJKT5YD9pHI+Z7MmGgBBAO/Thkp93AUGMGq6GcwoU2MPfq1JKDzbjNVTsrduV73er6dxXqgc0LWcphy4tYvVHsxM188XUHzRepYGfJwARCDDIT9WEY3royNIS/X8Wjwyn9um/ZS/DluFkL6vEakb+WLOz/H'; $str = $sm2->doDecrypt(bin2hex(base64_decode($skey)),$privateKey); } 运行报错 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240929/694e97f7839f2963b5f78e80ce7e0b12.png) 现在也不知道这个phpsm2是否能解决这个问题直接尝试就不成功 查了文档说需要给私钥转成 16 进制的 如果转成 16 进制就没法验签成功了 不知各位有什么建议或者有没有和中行那边对接国密的 PHPdemo? 附:中行 java 解密流程链接 "https://pan.baidu.com/s/191KI-6lvpvwzQHrjiImJGQ?pwd=q2km" (https://link.segmentfault.com/?enc=a3BNnanz0aV0dQCI3ZACCg%3D%3D.NEAmqlvRxxNpB0fBJObSzP8K5e%2BTSiq4E8kLnKlTBWIZMjHlrf6wp7Hr%2FZeVGvtkOe5daKbKTdK0vASOkiLwAQ%3D%3D) 最后还是让行内技术人员弄的一个java的web应用我直接通过curl_init链接地址传参数就行了

0
1
0
浏览量175
无敌美少女

如何做到真正的服务端加密存储,仅用户客户端解密后使用?

我现在是弄一个小程序,用户会添加非常敏感的安全信息,目前是用户端添加敏感数据时使用他的union_id和固定的key作为加解密密钥,然后再AES加密后再提交到服务端,然后下次请求服务器返回加密数据后解密再使用。 这里存在一个问题,如果有黑客拿到了我的数据库,和我的算法,然后就可以解密出用户的敏感数据。因为用户union_id是会记录到服务端数据库,客户端固定的key也是可以扒到。 有什么方案可以做到真的的加密云端存储,除了用户自己,其他人完全无法解密数据呢,包括我自己也无法查看用户的敏感数据? 跪求各位大佬推荐一个方案

0
1
0
浏览量18
正确计算方式

如何破解zip压缩包和压缩包中的文件内容?

"压缩包链接" (https://link.segmentfault.com/?enc=tb%2Bx94ONEP%2FQfkwzxdm%2BeA%3D%3D.XVcWV%2F0QJf7vo1TLHjrzj7UzOJXOKH25HX1ombEEXFjc0YWh8lT5ODVWy60CDs7k) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241213/c3cf72d8fbfc8d0ceaa2fe6a5fcaf500.png) 有什么解决思路?

0
1
0
浏览量16