求php高手,看上这一段加密算法的原理
求php高手,看下这一段加密算法的原理
- PHP code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> function sys_auth($str, $action = 'encode', $key = ''){ $key = md5($key); $str = $action == 'encode' ? $str : base64_decode($str); $strlen = strlen($str); $keylen = strlen($key); $code = ''; for($i = 0; $i
我将每句都echo 下的代码:
- PHP code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> function sys_auth($str, $action = 'encode', $key = ''){ $key = md5($key); echo '<br>$key:'.$key; $str = $action == 'encode' ? $str : base64_decode($str); echo '<br>加密方式的$str:'.$str; $strlen = strlen($str); echo '<br>$str长度'.$strlen; $keylen = strlen($key); echo '<br>$keylen长度'.$keylen; $code = ''; for($i = 0; $i 第".$i."次循环的\$k的值是".$k; $code .= $str[$i] ^ $key[$k]; echo "<br>第".$i.'次循环$k值是'.$k; echo "<br>第".$i.'次循环$str[$i]值是'.$str[$i]; echo "<br>第".$i.'次循环$key[$k]值是'.$key[$k]; echo "<br>第".$i."次循环的\$code的值是".$code."<br><br><br><br><br>"; } $code = $action == "decode" ? $code : base64_encode($code); echo "<br>".$code; return $code; } 得到的结果是: [code=PHP] $key:c81e728d9d4c2f636f067f89cc14862c 加密方式的$str:123456 $str长度6 $keylen长度32 第0次循环的$k的值是0 第0次循环$k值是0 第0次循环$str[$i]值是1 第0次循环$key[$k]值是c 第0次循环的$code的值是R 第1次循环的$k的值是1 第1次循环$k值是1 第1次循环$str[$i]值是2 第1次循环$key[$k]值是8 第1次循环的$code的值是R 第2次循环的$k的值是2 第2次循环$k值是2 第2次循环$str[$i]值是3 第2次循环$key[$k]值是1 第2次循环的$code的值是R 第3次循环的$k的值是3 第3次循环$k值是3 第3次循环$str[$i]值是4 第3次循环$key[$k]值是e 第3次循环的$code的值是R Q 第4次循环的$k的值是4 第4次循环$k值是4 第4次循环$str[$i]值是5 第4次循环$key[$k]值是7 第4次循环的$code的值是R Q 第5次循环的$k的值是5 第5次循环$k值是5 第5次循环$str[$i]值是6 第5次循环$key[$k]值是2 第5次循环的$code的值是R Q UgoCUQIE 加密后:UgoCUQIE
[/code]
现在的问题是:第0次循环$str[0]值是1,$key[0]值是c
我直接按照上面的 $str[0]^$key[0],(即1^0)却报错,怎么回事,另外 $str[0]^$key[0]不懂
------解决方案--------------------
手册,运算符

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











SQL에서 ID란 무엇입니까? SQL에서 ID는 자동 증가 숫자를 생성하는 데 사용되는 특수 데이터 유형으로, 테이블의 각 데이터 행을 고유하게 식별하는 데 사용됩니다. ID 열은 일반적으로 기본 키 열과 함께 사용되어 각 레코드에 고유한 식별자가 있는지 확인합니다. 이 문서에서는 Identity를 사용하는 방법과 몇 가지 실제 코드 예제를 자세히 설명합니다. Identity를 사용하는 기본 방법은 테이블을 생성할 때 Identit을 사용하는 것입니다.

1. 기능 개요 키스페이스 알림을 통해 클라이언트는 채널이나 패턴을 구독하여 어떤 방식으로든 Rediskey 변경 사항을 수정하는 이벤트를 수신할 수 있습니다. 키 키를 수정하는 모든 명령입니다. LPUSHkeyvalue[value…] 명령을 수신한 모든 키입니다. db 데이터베이스의 모든 만료된 키입니다. 이벤트는 Redis의 구독 및 게시 기능(pub/sub)을 통해 배포되므로 구독 및 게시 기능을 지원하는 모든 클라이언트는 아무런 수정 없이 바로 키스페이스 알림 기능을 사용할 수 있습니다. Redis의 현재 구독 및 게시 기능은 Fireandforget 전략을 채택하고 있기 때문에 프로그램이

발생한 문제: 개발 과정에서 login_logID(ID는 변수)와 같은 특정 규칙에 따라 일괄 삭제해야 하는 키가 발생합니다. 이제 "login_log*"와 같은 데이터를 삭제해야 하지만 그 자체는 redis입니다. 클래스 키 값에 대한 명령 키만 있고 특정 클래스에 대한 일괄 삭제 명령은 없습니다. 해결 방법: 먼저 쿼리한 다음 삭제하고, xargs를 사용하여 매개변수를 전달하고(xargs는 파이프 또는 표준 입력(stdin) 데이터를 명령줄 매개변수로 변환할 수 있음) 쿼리 문을 먼저 실행한 다음 쿼리된 키 값과 원래 del 매개변수를 제거합니다. 삭제. redis-cliKEYSkey* (검색 조건)|xargsr

패치할 수 없는 Yubico 2단계 인증 키 취약점으로 인해 대부분의 Yubikey 5, 보안 키 및 YubiHSM 2FA 장치의 보안이 손상되었습니다. Infineon SLB96xx 시리즈 TPM을 사용하는 Feitian A22 JavaCard 및 기타 장치도 취약합니다.

Microsoft는 Visual Studio Code용 Unity 확장의 미리 보기 버전을 출시했습니다. 이 새로운 Unity 확장을 사용하면 Unity 게임을 작성하고 디버그할 수 있습니다. 이 새로운 Unity 확장은 Visual Studio 및 Unity용 Visual Studio Tools에서 이미 사용할 수 있는 몇 가지 인기 있는 기능을 제공하여 Visual Studio Code의 C#을 Unity 개발에 더 적합하게 만듭니다. 현재 VSCode용 Unity 확장은 다음을 제공합니다. Unity 편집기 및 Unity 플레이어 디버깅을 위한 Unity 디버거. Unity 관련 C# 분석기 및 리팩토링. 유니

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

JSONObjectjsonObj=newJSONObject();jsonObj.put("version","1.0.0");//버전 번호 jsonObj.put("encoding","UTF-8");//encoding 방법에 KeyJSONObject가 있는지 확인합니다. jsonObject에 vesion 속성이 있는지 확인 jsonObj.has("version");//json 문자열에 k가 있는지 확인하려면 true를 반환합니다.

1유니코드 컴퓨터 저장의 기본 단위는 8비트로 구성된 바이트(byte)이다. 영어는 26개의 문자와 여러 개의 기호로만 구성되므로 영어 문자를 바이트 단위로 직접 저장할 수 있습니다. 하지만 다른 언어(예: 중국어, 일본어, 한국어 등)는 문자 수가 많기 때문에 인코딩에 여러 바이트를 사용해야 합니다. 컴퓨터 기술이 확산됨에 따라 비라틴어 문자 인코딩 기술이 계속 발전하고 있지만 여전히 두 가지 주요 제한 사항이 있습니다. 다국어 지원이 불가능합니다. 한 언어의 인코딩 방식을 다른 언어에서 사용할 수 없으며 통일된 표준이 없습니다. 예를 들어 중국어에는 GBK, GB2312, GB18030 등과 같은 여러 인코딩 표준이 있습니다. 인코딩 방법이 통일되어 있지 않기 때문에 개발자는 서로 다른 인코딩 간에 전환해야 하며 많은 오류가 필연적으로 발생합니다.
