随波逐流工作室—-探索前沿科技,分享最新软件。点击标题下蓝字“长弓三皮”关注,我们将为您提供有深度、有价值、有意思的阅读。
朋友们,现在只对常读和星标的公众号才展示大图推送,建议大家把长弓三皮“设为星标”,否则可能就看不到了啦!
作者:随波逐流
生活如梦,我愿随风起,随波流,享受每一刻的自在与轻盈。
字密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 = 0match_found = False# 遍历消息中的每个字符i = 0while i < message_length - 1:current_char = encoded_message[i]match_found = Falseindex = 0# 处理特殊前缀 '1' 和 '2'if current_char == "1":index = 6i += 1current_char = encoded_message[i]elif current_char == "2":index = 16i += 1current_char = encoded_message[i]# 在有效数字列表中查找匹配项while index < 26andnot match_found:if current_char == valid_numbers[index]:decrypted_result += valid_letters[index]match_found = Trueindex += 1# 如果没有找到匹配项,直接添加当前字符ifnot match_found:decrypted_result += current_char# 移动到下一个字符i += 1return decrypted_result# 示例使用:encoded_string = "1215182582252915"decoded_string = pizzini_decrypt(encoded_string)print("解密后的字符串是:" + decoded_string) # ILOVESBZL
你若喜欢,为“长弓三皮”点个赞和在看哦
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……




还没有评论,来说两句吧...