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日

悬赏问题

  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,