m0_71938955 2022-08-13 21:33 采纳率: 0%
浏览 73
已结题

PHP加密反向操作,希望哪位帮我改回来

问题遇到的现象和发生背景

现在的加密结果是随机0-9条不加密 其余全部加密

问题相关代码,请勿粘贴截图
$fileNameArr = scandir($dir2);
foreach ($fileNameArr as $fileName) {
    if ($fileName != '.' && $fileName != '..') {
        $m3u8txt = file_get_contents($dir2.'/'.$fileName);
        if (strstr($m3u8txt,"\r")==true) {
            $m3u8txt = str_replace("\r","",$m3u8txt);
        }
        if ($ifjm == true) {
            preg_match_all('/#EXTINF:(.*),\n?(.*)\n?/',$m3u8txt,$m3u8Arr);
            $timeArr = $m3u8Arr[1];
            $tsArr = $m3u8Arr[2];
            if (count($timeArr) == count($tsArr)) {
                $m3u8 = $m3u8head;
                if ($jmtype == 2) {
                    $r = (string)rand(0,9);
                }
                foreach ($tsArr as $key => $ts) {
                    $ts = trim($ts);
                    if ($jmtype == 1 || ($jmtype == 2 && strstr((string)$key,$r) == true)) {
                        $jmts = publicEncrypt($ts);
                    }
                    $m3u8 = $m3u8 . "\n" . '#EXTINF:' . $timeArr[$key] .',';
                    if (empty($jmts)==false) {
                        $jmurl = $web.'?ts='.$jmts;
                        $m3u8 = $m3u8 . "\n" . $jmurl;
                    } else {
                        $m3u8 = $m3u8 . "\n" . $ts;
                        if ($jmtype == 1) {
                            echo $fileName . '-' . $ts . '加密失败';
                            echo '
'
; }
运行结果及报错内容

目前加密结果是上面一段随机0-9条不加密,其他的全部加密

我的解答思路和尝试过的方法

配置文件选择1是全部加密 选择2是随机加密

我想要达到的结果

我希望的随机加密0-9条 其他的不加密

希望哪位朋友帮我改下代码

img

  • 写回答

2条回答 默认 最新

  • 爱吃苦瓜的猿 2022-08-17 20:20
    关注
    获得5.00元问题酬金

    下面代码块写得与你的需求不一致

    if ($jmtype == 1 || ($jmtype == 2 && strstr((string)$key,$r) == true)) {
      $jmts = publicEncrypt($ts);
    }
    

    1.如果你要实现随机加密0-9条,可以使用random_int(0,9)生成一个随机数,随机数的个数决定需要加密的文件数。
    2.用random_int进行随机抽样

    // 随机确定加密文件数
    $needEncCnt=random_int(0,9);
    // 随机抽取10%的加密,这个根据你的文件数量来确定,如果抽取1%的流量就用random_int(0,99)
    $isEnc=random_int(0,9);
    // 随机抽中需要加密,且有加密配额才加密
    if($needEncCnt>=0 && $isEnc==0){
        $jmts = publicEncrypt($ts);
        $needEncCnt-=1;
    }
    
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 8月21日
  • 创建了问题 8月13日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境