网站首页 > 精选教程 正文
解密前
14-5-24-20 21-16: "6-15-15-20-2-15-20 20-23-15: 7-18-21-14-11-12-5'19 7-18-5-22-5-14-7-5."
解密后
NEXT UP: "FOOTBOT TWO: GRUNKLE'S GREVENGE."
小彩蛋
112626 23-9-12-12 2-5 18-5-16-12-1-3-5-4 2-25 22-9-18-7-9-14-9-1 9-14 20-8-5 14-5-24-20 2-12-15-7
简介
A1Z26密码是一种简单的加密算法,它的原理是将输入的字符串按照字母表顺序转换为数字。比如a转换为1,b转换为2,以此类推。这种加密方法适用于一些不需要高级保密措施的场景,比如初学者的练习、暗示等。
A1Z26密码对照表
字符 | 数字 |
A | 1 |
B | 2 |
C | 3 |
D | 4 |
E | 5 |
F | 6 |
G | 7 |
H | 8 |
I | 9 |
J | 10 |
K | 11 |
L | 12 |
M | 13 |
N | 14 |
O | 15 |
P | 16 |
Q | 17 |
R | 18 |
S | 19 |
T | 20 |
U | 21 |
V | 22 |
W | 23 |
X | 24 |
Y | 25 |
Z | 26 |
JAVA实现:
下面是 Java 的 A1Z26 加解密示例代码:
import java.util.Scanner;
public class A1Z26 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入需要加密的字符串:");
String input = scanner.nextLine().toLowerCase();
String encryptResult = encrypt(input);
System.out.println("加密后结果为:" + encryptResult);
System.out.println("\n请输入需要解密的字符串,空格区分");
String cipher = scanner.nextLine().toLowerCase();
String decryptResult = decrypt(cipher);
System.out.println("解密后结果为:" + decryptResult);
scanner.close();
}
// 加密函数
private static String encrypt(String input) {
String[] chars = input.split("");
String result = "";
for (String s : chars) {
if (s.matches("[a-z]")) {
result += Integer.toString(s.charAt(0) - 'a' + 1) + " ";
} else {
result += s;
}
}
return result.trim();
}
// 解密函数
private static String decrypt(String cipher) {
String[] integers = cipher.split(" ");
String result = "";
for (String s : integers) {
if (s.matches("[1-9]\\d*")) {
result += (char) (Integer.parseInt(s) + 'a' - 1);
} else {
result += s;
}
}
return result;
}
}
首先使用 Scanner 从控制台获取用户的输入。在加密函数中,我们对输入的字符串进行了 A1Z26 加密,并返回加密后的结果。在解密函数中,我们对加密后的数字序列进行解密,并返回解密后的结果。将加解密函数放在一个类中,可以使代码更加清晰和易于维护。
示例输出:
请输入需要加密的字符串:Hello World!
加密后结果为:8 5 12 12 15 23 15 18 12 4 !
请输入需要解密的字符串:
8 5 12 12 15 23 15 18 12 4 !
解密后结果为:hello world!
以上就是 Java 的 A1Z26 加解密示例代码,你可以根据自己的需求进行修改和优化。
Python示例代码
以下是 Python 的 A1Z26 加解密示例代码:
import re
# 加密函数
def encrypt(input_str):
result = ""
for char in input_str:
if char.islower(): # 判断是否为小写字母
result += str(ord(char) - 96) + " "
else:
result += char
return result.strip()
# 解密函数
def decrypt(cipher_str):
result = ""
integers = re.findall('\d+', cipher_str) # 使用正则表达式提取数字
for integer in integers:
result += chr(int(integer) + 96)
return result
# 测试样例
input_str = "hello world!"
cipher_str = encrypt(input_str)
print(f"加密后:{cipher_str}")
plain_str = decrypt(cipher_str)
print(f"解密后:{plain_str}")
在加密函数中,我们遍历输入字符串的每一个字符,对于每一个小写字母,使用 ord() 函数获取其对应的 ASCII 码,并减去 96,得到其在本题中所代表的数字,将其添加到结果字符串中。对于非小写字母字符,直接添加到结果字符串中。
在解密函数中,我们使用正则表达式 re.findall() 函数提取密文中的数字,并将其转换为 ASCII 码对应的字符。
示例输出:
加密后:8 5 12 12 15 23 15 18 12 4!
解密后:hello world!
以上就是 Python 的 A1Z26 加解密示例代码,你可以根据自己的需求进行修改和优化。
Js示例代码
以下是 JavaScript 的 A1Z26 加解密示例代码,配合一个简单的 HTML 页面使用:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>A1Z26加解密</title>
<script>
// 加密函数
function encrypt(inputStr) {
var result = "";
for (var i = 0; i < inputStr.length; i++) {
var charCode = inputStr.charCodeAt(i);
if (charCode >= 97 && charCode <= 122) { // 判断是否为小写字母
result += (charCode - 96) + " ";
} else {
result += inputStr[i];
}
}
return result.trim();
}
// 解密函数
function decrypt(cipherStr) {
var result = "";
var integers = cipherStr.match(/\d+/g); // 使用正则表达式提取数字
for (var i = 0; i < integers.length; i++) {
result += String.fromCharCode(parseInt(integers[i]) + 96);
}
return result;
}
// 加密解密操作
function operate() {
var inputStr = document.getElementById("input-text").value;
var mode = document.getElementById("mode").value;
var outputStr = "";
if (mode == "encrypt") {
outputStr = encrypt(inputStr);
} else if (mode == "decrypt") {
outputStr = decrypt(inputStr);
}
document.getElementById("output-text").value = outputStr;
}
</script>
</head>
<body>
<h1>A1Z26加解密</h1>
<p>请输入要加密/解密的字符串:</p>
<textarea id="input-text" rows="5"></textarea>
<br>
<label for="mode">请选择操作类型:</label>
<select id="mode">
<option value="encrypt">加密</option>
<option value="decrypt">解密</option>
</select>
<br>
<button onclick="operate()">执行操作</button>
<br>
<p>处理结果:</p>
<textarea id="output-text" rows="5" readonly></textarea>
</body>
</html>
在这个 HTML 页面中,我们定义了两个函数 encrypt() 和 decrypt(),分别用于加密和解密操作。
在加密函数中,我们遍历输入字符串的每一个字符,使用 charCodeAt() 函数获取其 Unicode 码点值,并判断是否为小写字母。如果是小写字母,则减去 96(‘a’ 的 Unicode 码点值为 97),得到其在本题中所代表的数字,将其添加到结果字符串中。对于非小写字母字符,直接添加到结果字符串中。最后使用 trim() 函数去除字符串首尾的空格。
在解密函数中,我们使用正则表达式 match() 函数提取密文中的数字,并将其转换为 ASCII 码对应的字符后添加到结果字符串中。
此外,我们还定义了一个名为 operate() 的函数,用于根据用户选择的操作类型进行加密或解密操作,并将结果输出到 HTML 页面上。
注意:为了方便示例演示,本代码将所有 JavaScript 代码、CSS 代码、HTML 代码全部写在了一个文件中,实际上大型的 Web 应用程序会将它们分别封装在不同的文件中,以便管理和维护。
示例输出:
链接:https://juejin.cn/post/7215153930473373757
猜你喜欢
- 2024-12-03 加密算法之AES
- 2024-12-03 盘点几个安卓逆向之常用加密算法
- 2024-12-03 记一次排查线上MySQL死锁过程,不能只会curd,还要知道加锁原理
- 2024-12-03 Java实现对称加密----AES和DES加密、解密
- 2024-12-03 基于Vue.js的http网站如何实现帐号密码加密传输?
- 2024-12-03 3. SpringBoot与Shiro整合:密码加密和解密
- 2024-12-03 常用的加密算法介绍——AES
- 2024-12-03 SpringBoot中如何灵活的实现接口数据的加解密功能?
- 2024-12-03 数字签名的概念入门和Java代码实现
- 2024-12-03 Spring Boot实战:集成Jasypt进行加密、解密
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)