随波逐流工作室—-探索前沿科技,分享最新软件。点击标题下蓝字“长弓三皮”关注,我们将为您提供有深度、有价值、有意思的阅读。
朋友们,现在只对常读和星标的公众号才展示大图推送,建议大家把长弓三皮“设为星标”,否则可能就看不到了啦!
作者:随波逐流
生活如梦,我愿随风起,随波流,享受每一刻的自在与轻盈。
字密1 菜单
Pizzini与经典的凯撒密码非常相似,其中字母表移动了三个字母(A => D、B => E 等)。不同之处在于 Pizzini 密码将这些字母分配给数字,因此 A = 4 等。该密码起源于意大利黑帮老大贝尔纳多·普罗文扎诺 (Bernardo Provenzano),并以他们使用的小纸片命名。
注意:该密码使用 26 个字符的拉丁字母。最初的版本使用意大利字母,只有 21 个字符。
Pizzini解密:
执行路径:[随波逐流]CTF编码工具--字密1--Pizzini解密
文本框输入密文,结果区输出明文。
密文:
810840842108842041088210208882084
解密结果:ILOVESBZL
Pizzini编码是一种基于凯撒密码(Caesar cipher)的简单替换密码,它最初由意大利黑手党使用,特别是西西里黑手党头目Bernardo Provenzano,用于高级别通信。以下是Pizzini编码的详细介绍:
名称来源:
Pizzino(复数形式pizzini)是意大利语词汇,源自西西里语“pizzinu”。这个词原本指“小纸片”,后来特指西西里黑手党用于通信的小纸条。
编码原理:
Pizzini编码使用凯撒密码的变种,通过将字母表中的每个字母向前移动三个位置来实现加密。例如,在英文字母表中,A变为D,B变为E,以此类推。
与标准凯撒密码不同的是,Pizzini编码在字母移位后,将每个字母替换为其在字母表中的位置编号。例如,“mia”可能被编码为“16124”,其中m(字母表中第13个字母)+3变为16,i(第9个字母)+3变为12,a(第1个字母)+3变为4。
意大利字母表:
Pizzini编码使用的是意大利字母表,与拉丁字母表相比,意大利字母表的顺序和字符数量略有不同。意大利字母表只有21个字符,而拉丁字母表有26个。
编码示例:
Provenzano的一个著名编码信息是:“I met 512151522 191212154 and we agreed that we will see each other after the holidays...”,解码后的信息是“Binnu Riina”。
安全性:
这种密码非常简单且古老,其安全性较低,只能防止非专业的破解尝试。正如密码学专家Bruce Schneier所说,这种密码看起来像是“幼儿园水平的密码学”,它可能能阻止你的妹妹,但阻止不了警察。
破解:
当Provenzano的密切同伙成为线人后,意大利警方得以阅读许多pizzini,并迅速破解了这种密码。
复杂密码:
Provenzano的传记作者还报告说,他使用了一种更复杂的密码,这种密码至今尚未被破解,它涉及到Provenzano在圣经副本中划线选择的特定单词。
Pizzini编码因其简单性和易于破解而闻名,它展示了即使是犯罪组织也会使用基本的密码学技术来保护其通信。然而,随着时间的推移和密码分析技术的发展,这种密码已不再被认为是安全的。
在CTF中一般使用python解码
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author :随波逐流
# Pizzini编码解密
def pizzini_decrypt(encoded_message):
"""
解密Pizzini编码的字符串。
参数:
encoded_message (str): 需要解密的编码字符串。
返回:
str: 解密后的明文字符串。
"""
# 在消息末尾添加 "*" 作为结束符
encoded_message += "*"
# 定义字母表和有效数字列表
valid_letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
valid_numbers = ['4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3',
'4', '5', '6', '7', '8', '9']
# 初始化解密结果字符串
decrypted_result = ""
# 获取消息长度
message_length = len(encoded_message)
# 初始化索引和匹配标志
index = 0
match_found = False
# 遍历消息中的每个字符
i = 0
while i < message_length - 1:
current_char = encoded_message[i]
match_found = False
index = 0
# 处理特殊前缀 '1' 和 '2'
if current_char == "1":
index = 6
i += 1
current_char = encoded_message[i]
elif current_char == "2":
index = 16
i += 1
current_char = encoded_message[i]
# 在有效数字列表中查找匹配项
while index < 26andnot match_found:
if current_char == valid_numbers[index]:
decrypted_result += valid_letters[index]
match_found = True
index += 1
# 如果没有找到匹配项,直接添加当前字符
ifnot match_found:
decrypted_result += current_char
# 移动到下一个字符
i += 1
return decrypted_result
# 示例使用:
encoded_string = "1215182582252915"
decoded_string = pizzini_decrypt(encoded_string)
print("解密后的字符串是:" + decoded_string) # ILOVESBZL
你若喜欢,为“长弓三皮”点个赞和在看哦
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...