原理说明
++ 效果:当别人@你时,会在@的文字后面加上一另段文字。下图结尾的「喵~」不是发送者输入的。 +
+
+ 原理:用unicode控制字符 RLI
和
+ LRI
包裹倒序的后缀部分,
+ 在别人@后,@后面的文本会跑到被包裹部分的前面去。
+
diff --git a/app/tools/CatgirlGenerator/page.tsx b/app/tools/CatgirlGenerator/page.tsx new file mode 100644 index 0000000..37320f8 --- /dev/null +++ b/app/tools/CatgirlGenerator/page.tsx @@ -0,0 +1,47 @@ +"use client"; + +import NicknameGenerator from '@/components/tools/CatgirlGenerator/NicknameGenerator' +import TextReversal from '@/components/tools/CatgirlGenerator/TextReversal' +import CustomTemplate from '@/components/tools/CatgirlGenerator/CustomTemplate' +import DarkModeToggle from '@/components/tools/CatgirlGenerator/DarkModeToggle' +import Footer from "@/components/tools/CatgirlGenerator/Footer"; +export default function Home() { + return ( +
+ 效果:当别人@你时,会在@的文字后面加上一另段文字。下图结尾的「喵~」不是发送者输入的。 +
+
+ 原理:用unicode控制字符 RLI
和
+ LRI
包裹倒序的后缀部分,
+ 在别人@后,@后面的文本会跑到被包裹部分的前面去。
+
{error}
+ )} +
+ 使用 #r
表示 RLI 字符,
+ 使用 #l
表示 LRI 字符。
+
{progress}%
+原始大小
+{originalSizeKB} KB
+压缩后大小
+{compressedSizeKB} KB
+压缩比例
+{compressionRatio}%
+输出格式
+{compressedImage.type.split('/')[1].toUpperCase()}
+拖放图片到这里 ...
+ ) : ( ++ 拖放图片到这里,或点击选择图片 +
+ )} +{error}
} + {selectedFile && ( ++ 已成功上传:{" "} + {selectedFile.name} +
++ 文件大小: {(selectedFile.size / 1024 / 1024).toFixed(2)} MB +
+ {selectedFile.type.startsWith("image/") && ( +md5 哈希计算依赖 js-md5 库。
+为保持页面性能,仅显示前面最多 1000 位人员的哈希校验
+序号 | +参与人 | +哈希值 | +与种子的距离 | +
---|---|---|---|
{index + 1} | +{name} | +{hash} | +{distance} | +
+ 选择一个随机的文本作为种子值。这个种子值将被用作计算哈希值的输入。为了获得最好的排序效果,建议选择事先无法确定的内容作为种子,如明天的热搜第一条,或某一个群聊内最新的一条消息。 +
+{errors.salt}
} +{errors.count}
} ++ 此网页将逐一比较每个参与者的哈希值与种子的哈希值。通过计算它们之间的相似度,可以找出与种子值最接近的参与者,并将他们按照相似度的程度进行排序。这种排序方法可以确保在每次排序过程中都能产生一致而可靠的结果,满足了「事后可复现」。 +
+