开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 404|回复: 15
收起左侧

[已解决] 求助一个JS算法

 关闭 [复制链接]
结帖率:69% (34/49)
发表于 2025-2-19 23:39:45 | 显示全部楼层 |阅读模式   广东省惠州市
12精币
<?php
function getEncryptionData($timestamp, $encryptChar) {
    $D = (string) $timestamp;
    $B = 0;
    for (; $B < strlen($encryptChar); $B++) {
        $charCode = ord($encryptChar[$B]);
        if ($B % 2 === 0) {
            $newCharCode = $charCode + 2;
        } else {
            $newCharCode = $charCode - 2;
        }
        $D .= chr($newCharCode);
    }
    return base64_encode($D);
}
$microtime = microtime(true);
$timestamp13 = (int)($microtime * 1000);
$timestamp = substr((string)$timestamp13, 0, 10);
$formattedTimestamp = substr($timestamp13, 0, 10) . '.' . substr($timestamp13, 10);
$encryptChar = "123456";
$encryptedString = getEncryptionData($timestamp, $encryptChar);
echo "13 位 Timestamp: ". $formattedTimestamp . PHP_EOL;
echo "传递给加密函数的 10 位 Timestamp: ". $timestamp . PHP_EOL;
echo "Encrypt Character: ". $encryptChar . PHP_EOL;
echo "Encrypted String: ". $encryptedString . PHP_EOL;
?>  


麻烦帮忙翻译成易语言(不大确定上面的转换是否正确)    实际测试抓包发现 假设密码固定为 123456
测试发现
第一次
  {
    "csrfprotect": "1739979373",
    "password": "NWhKQWl4TlRGYjMwNTI3NA==",
    "tm": 1739979365.878,
    "base64": 1
}
第2
{
    "csrfprotect": "1739979380",
    "password": "aTZhUEpqakFNcjMwNTI3NA==",
    "tm": 1739979462.236,
    "base64": 1
}
第3
{
    "csrfprotect": "1739979476",
    "password": "cHMzOEpiRHRRQjMwNTI3NA==",
    "tm": 1739979515.955,
    "base64": 1
}

求助大神帮忙帮忙弄一下给出源码谢谢


最佳答案

查看完整内容

[mw_shl_code=javascript,true] function getRandomString(C) { C = C || 32; for (var D = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678", B = D.length, E = "", e = 0; e < C; e++) E += D.charAt(Math.floor(Math.random() * B)); return E } function getEncryptionData(C) { var D = ''; D = getRandomString(10); var B = 0; for (; B < C.length; B++) { if (B % 2 === 0) { ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:79% (19/24)

签到天数: 5 天

发表于 2025-2-19 23:39:46 | 显示全部楼层   河南省鹤壁市
[JavaScript] 纯文本查看 复制代码
 function getRandomString(C) {
        C = C || 32;
        for (var D = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678", B = D.length, E = "", e = 0; e < C; e++) E += D.charAt(Math.floor(Math.random() * B));
        return E
}



function getEncryptionData(C) {
    var D = '';
    D = getRandomString(10);
    var B = 0;
    for (; B < C.length; B++) {
        if (B % 2 === 0) {
            D += String.fromCharCode(C.charCodeAt(B) + 2);
        } else {
            D += String.fromCharCode(C.charCodeAt(B) - 2);
        }
    }
    return D;
}



  
子程序名返回值类型公开备 注
_启动子程序整数型 本子程序在程序启动后最先执行
子程序1 (“123456”)
返回 (0)  ' 可以根据您的需要返回任意数值
子程序名返回值类型公开备 注
子程序1文本型 
参数名类 型参考可空数组备 注
参_str文本型
变量名类 型静态数组备 注
str文本型 
str = 编码_运行JS代码 ( #JS, “getEncryptionData”, 参_str, , , )
调试输出 (“1 str”, str)
str = 编码_BASE64编码 (到字节集 (str))
调试输出 (“2 str”, str)
返回 (str)


i支持库列表   支持库注释   
spec特殊功能支持库

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 12 天

发表于 2025-2-19 23:57:19 | 显示全部楼层   河北省石家庄市
谁告诉你这是js,加我qq文件发给我看下吧
回复

使用道具 举报

结帖率:69% (34/49)

签到天数: 9 天

 楼主| 发表于 2025-2-20 00:14:14 | 显示全部楼层   广东省惠州市
联系方式看签名 发表于 2025-2-19 23:57
谁告诉你这是js,加我qq文件发给我看下吧

实际就是一个JS算法 我自己AI成PHP了 PHP能算看着像  易语言不大会转了
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 11 天

发表于 2025-2-20 00:46:40 | 显示全部楼层   福建省漳州市
善于用deepseek。
  
窗口程序集名保 留  保 留备 注
程序集1   
子程序名返回值类型公开备 注
启动子程序整数型 
变量名类 型静态数组备 注
时间戳文本文本型 
格式化时间戳文本型 
加密字符文本型 
加密结果文本型 
时间戳文本 = 时间_取现行时间戳 ()
格式化时间戳 = 取文本左边 (时间戳文本, 10)“.”取文本右边 (时间戳文本, 取文本长度 (时间戳文本) - 10)
加密字符 = "123456"
加密结果 = 加密函数 (取文本左边 (时间戳文本, 10), 加密字符)
输出调试文本 ("13位时间戳:" + 格式化时间戳)
输出调试文本 ("传递给加密的10位时间戳:" + 取文本左边 (时间戳文本, 10))
输出调试文本 ("加密字符:" + 加密字符)
输出调试文本 ("加密结果:" + 加密结果)
返回 0  ' 可以根据您的需要返回任意数值
子程序名返回值类型公开备 注
加密函数文本型 
参数名类 型参考可空数组备 注
时间戳文本型
加密串文本型
变量名类 型静态数组备 注
D文本型 
B整数型 
当前字符文本型 
ASCII码整数型 
新ASCII码整数型 
D = 时间戳
变量循环首 B = 0 到 取文本长度 (加密串) - 1
当前字符 = 取文本中间 (加密串, B + 1, 1)
ASCII码 = 取代码 (当前字符)

如果 (B % 2 = 0)
新ASCII码 = ASCII码 + 2
新ASCII码 = ASCII码 - 2

D = D + 字符 (新ASCII码)
变量循环尾 ()
返回 (编码_BASE64编码 (到字节集 (D)))  ' 使用精易模块的BASE64编码

回复

使用道具 举报

结帖率:69% (34/49)

签到天数: 9 天

 楼主| 发表于 2025-2-20 01:15:42 | 显示全部楼层   广东省惠州市
南影 发表于 2025-2-20 00:46
善于用deepseek。
[e=1].版本 2
.程序集 程序集1

deepseek 不是用着好卡吗?
回复

使用道具 举报

结帖率:69% (34/49)

签到天数: 9 天

 楼主| 发表于 2025-2-20 01:40:29 | 显示全部楼层   广东省惠州市
南影 发表于 2025-2-20 00:46
善于用deepseek。
[e=1].版本 2
.程序集 程序集1

算着也不对 原测试发现后面好像是固定值 前面才是随机值
回复

使用道具 举报

签到天数: 7 天

发表于 2025-2-20 08:34:07 | 显示全部楼层   河北省石家庄市
你这翻译成php 100%是错的,就你提供的那几组文本,跟php算出来完全不一致,你还不如直接提供js,来回绕,饶错了
回复

使用道具 举报

结帖率:69% (34/49)

签到天数: 9 天

 楼主| 发表于 2025-2-20 09:28:48 | 显示全部楼层   广东省惠州市
番茄吧 发表于 2025-2-20 08:34
你这翻译成php 100%是错的,就你提供的那几组文本,跟php算出来完全不一致,你还不如直接提供js,来回绕, ...

确实 是错的  搞了半天  后面搞到对上PHP 了  但是 JS实际还是错了
回复

使用道具 举报

结帖率:69% (34/49)

签到天数: 9 天

 楼主| 发表于 2025-2-20 09:31:31 | 显示全部楼层   广东省惠州市
番茄吧 发表于 2025-2-20 08:34
你这翻译成php 100%是错的,就你提供的那几组文本,跟php算出来完全不一致,你还不如直接提供js,来回绕, ...

JS.rar (490.52 KB, 下载次数: 5)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表