From 09b8483ed67d3b85e983ef86c34260081975e1cb Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 2 May 2025 06:47:07 +0900 Subject: fix(blog/nuldoc): remove unnecessary "language" attribute --- .../2022-04-09/phperkaigi-2022-tokens/index.html | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'vhosts/blog/public/posts/2022-04-09') diff --git a/vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html b/vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html index 9717789c..36183432 100644 --- a/vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html +++ b/vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html @@ -80,7 +80,7 @@

ソースコードはこちら。実行には PHP 8.1 以上が必要なので注意。

-
+
<?php
 
 declare(strict_types=0O1);
@@ -250,7 +250,7 @@
                 

ソースコードのライセンスを示したこの部分だが、

-
+
https://creativecommons.org/publicdomain/zero/1.0/

@@ -262,7 +262,7 @@

ソースコード中に、ほとんど数値リテラルが書かれていないことにお気づきだろうか。 PHP では、型変換を利用することで任意の整数を作り出すことができる。

-
+
assert(0 === +!![]);
 assert(1 === +![]);
 assert(2 === ![]+![]);
@@ -301,7 +301,7 @@
             

ソースコードはこちら。実行には PHP 8.0 以上が必要なので注意。

-
+
<?php
 
 /*********************************************************
@@ -348,7 +348,7 @@
               

まずはソースコードを読んでいく。

-
+
$token = [
   // 略
 ];
@@ -356,25 +356,25 @@

数値からなる $token があり、各要素をループしている。

-
+
$x = $x ^ N;

まずは排他的論理和 (xor) を取り、

-
+
$x = sprintf('%025b', $x);

二進数に変換して、

-
+
$x = str_replace(search: ['0', '1'], replace: [' ', '#'], subject: $x);

0 を空白に、1 を # にし、

-
+
$x = implode("\n", str_split($x, length: 5));

@@ -412,13 +412,13 @@

N は高々

-
+
assert(0 <= N && N <= 0b11111_11111_11111_11111_11111);

なのでブルートフォースしてもよいが、ここではブルートフォースしない方法を紹介する。

-
+
<?php
 
 $x = 0x14B499C;
@@ -439,7 +439,7 @@
               

この一連の変換に対する逆変換を考えると、次のようになる。

-
+
<?php
 
 $x =
@@ -467,7 +467,7 @@
             

ソースコードはこちら。

-
+
<?php
 
 // License: https://creativecommons.org/publicdomain/zero/1.0/
@@ -501,7 +501,7 @@
             

コメントにもあるとおり、次のようにして実行すれば答えがでてくる。

-
+
$ php toquine.php | php | php | php | ...

-- cgit v1.2.3-70-g09d2