求一个可逆的加密算法,要求有点高
要求:
1.加密后的长度和加密前的长度一样长
2.加密后的字符串中只允许出现a到z中的字母和0到9的数字
3.根据秘钥可以再算回来
加密前的字符串也都是字母和数字的组合
如加密前的字符串:us3kqvu
回复讨论(解决方案)
你可以试试凯撒加密和栅栏加密,或者将两种方法都用进去
凯撒密码
$key = '3ae';$s = caesar_encode('us3kqvu', $key);echo "$s\n";echo caesar_decode($s, $key);function caesar_encode($s, $k) { $k = "$k"; for($i=0; $i<strlen($k); $i++) { $d = base_convert($k{$i}, 36, 10); $t = ''; for($j=0; $j<strlen($s); $j++) $t .= base_convert((base_convert($s{$j}, 36, 10)+$d)%36, 10, 36); $s = $t; } return $t;}function caesar_decode($s, $k) { $k = "$k"; for($i=0; $i<strlen($k); $i++) { $d = 36 - base_convert($k{$i}, 36, 10); $t = ''; for($j=0; $j<strlen($s); $j++) $t .= base_convert((base_convert($s{$j}, 36, 10)+$d)%36, 10, 36); $s = $t; } return $t;}
原文:us3kqvu
凯撒密码
$key = '3ae';$s = caesar_encode('us3kqvu', $key);echo "$s\n";echo caesar_decode($s, $key);function caesar_encode($s, $k) { $k = "$k"; for($i=0; $i<strlen($k); $i++) { $d = base_convert($k{$i}, 36, 10); $t = ''; for($j=0; $j<strlen($s); $j++) $t .= base_convert((base_convert($s{$j}, 36, 10)+$d)%36, 10, 36); $s = $t; } return $t;}function caesar_decode($s, $k) { $k = "$k"; for($i=0; $i<strlen($k); $i++) { $d = 36 - base_convert($k{$i}, 36, 10); $t = ''; for($j=0; $j<strlen($s); $j++) $t .= base_convert((base_convert($s{$j}, 36, 10)+$d)%36, 10, 36); $s = $t; } return $t;}
原文:us3kqvu
这种加密解密方式 存在重复性的概率大吗
凯撒密码 通过移动字符表映射来实现的,理论上不存在重复的可能性
所谓 移动字符表映射 就是例如
原文 abcd
移动距离 4
密文 efgh
一个字节有8位(bit),6位则有2^6=64种可能,字母+数字合计62个
所以有个映射表就能压缩到6位内
6位转6位的位运算就多的是了,任君选择,再反向映射为字母数字
上面的过程都是可逆的
凯撒加密和栅栏加密

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Long URLs, often cluttered with keywords and tracking parameters, can deter visitors. A URL shortening script offers a solution, creating concise links ideal for social media and other platforms. These scripts are valuable for individual websites a

Laravel simplifies handling temporary session data using its intuitive flash methods. This is perfect for displaying brief messages, alerts, or notifications within your application. Data persists only for the subsequent request by default: $request-

This is the second and final part of the series on building a React application with a Laravel back-end. In the first part of the series, we created a RESTful API using Laravel for a basic product-listing application. In this tutorial, we will be dev

Laravel provides concise HTTP response simulation syntax, simplifying HTTP interaction testing. This approach significantly reduces code redundancy while making your test simulation more intuitive. The basic implementation provides a variety of response type shortcuts: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

The PHP Client URL (cURL) extension is a powerful tool for developers, enabling seamless interaction with remote servers and REST APIs. By leveraging libcurl, a well-respected multi-protocol file transfer library, PHP cURL facilitates efficient execution of various network protocols, including HTTP, HTTPS, and FTP. This extension offers granular control over HTTP requests, supports multiple concurrent operations, and provides built-in security features.

Do you want to provide real-time, instant solutions to your customers' most pressing problems? Live chat lets you have real-time conversations with customers and resolve their problems instantly. It allows you to provide faster service to your custom

The 2025 PHP Landscape Survey investigates current PHP development trends. It explores framework usage, deployment methods, and challenges, aiming to provide insights for developers and businesses. The survey anticipates growth in modern PHP versio

In this article, we're going to explore the notification system in the Laravel web framework. The notification system in Laravel allows you to send notifications to users over different channels. Today, we'll discuss how you can send notifications ov
