Crypto - Caesar I

原题链接:http://www.wechall.net/challenge/training/crypto/caesar/index.php

告诉我们这是个古凯撒密码,让我们解。。。我们百度下古凯撒密码

 

它是一种代换密码。据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码
凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。

而他给我们的暗文是:

ESP BFTNV MCZHY QZI UFXAD ZGPC ESP WLKJ OZR ZQ NLPDLC LYO JZFC FYTBFP DZWFETZY TD OMTOXWAAQSNC

这里附上一个我自己写的c语言程序来解码

#include <stdio.h>

#include <string.h>

int main(){

char str[99];

int l,i,m;

gets(str);

l=strlen(str);

for(i=0;i<26;i++){

for(m=0;m<l;m++){

if(str[m]==' ') continue;

str[m]=str[m]+1;

if('Z'<str[m]) str[m]='A';

}

printf("%d: ",i+1);

puts(str);

printf("\n");

}

}

运行一遍得到solution

 

转载于:https://www.cnblogs.com/wosun/p/11256434.html

Python中可以使用多种加解密算法,下面是一些常见的实现方式: 1. Caesar密码 Caesar密码是一种简单的字母替换加密算法,可以通过将明文中的每个字母替换为固定偏移量后的字母来实现加密。例如,将每个字母按字母表顺序向后偏移3个位置,即A->D,B->E,C->F,...,Z->C。 加密代码示例: ```python def caesar_encrypt(text, shift): result = "" for char in text: if char.isalpha(): char_code = ord(char) char_code = (char_code - 97 + shift) % 26 + 97 result += chr(char_code) else: result += char return result ``` 解密代码示例: ```python def caesar_decrypt(text, shift): result = "" for char in text: if char.isalpha(): char_code = ord(char) char_code = (char_code - 97 - shift) % 26 + 97 result += chr(char_code) else: result += char return result ``` 2. AES加密 AES是一种高级加密标准,是一种对称密钥加密算法,可以加密任意长度的数据。Python中可以使用`pycryptodome`库来实现AES加密。 加密代码示例: ```python from Crypto.Cipher import AES def aes_encrypt(text, key): cipher = AES.new(key.encode(), AES.MODE_ECB) padded_text = text + (AES.block_size - len(text) % AES.block_size) * chr(AES.block_size - len(text) % AES.block_size) encrypted_text = cipher.encrypt(padded_text.encode()) return encrypted_text.hex() ``` 解密代码示例: ```python def aes_decrypt(text, key): cipher = AES.new(key.encode(), AES.MODE_ECB) encrypted_text = bytes.fromhex(text) decrypted_text = cipher.decrypt(encrypted_text).decode() return decrypted_text.rstrip(chr(AES.block_size - len(decrypted_text) % AES.block_size)) ``` 3. RSA加密 RSA是一种非对称密钥加密算法,可以实现数字签名、加密和解密。Python中可以使用`pycryptodome`库来实现RSA加密。 生成密钥代码示例: ```python from Crypto.PublicKey import RSA def generate_rsa_key_pair(key_size=2048): key = RSA.generate(key_size) public_key = key.publickey().export_key() private_key = key.export_key() return public_key, private_key ``` 加密代码示例: ```python from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_v1_5 def rsa_encrypt(text, public_key): key = RSA.import_key(public_key) cipher = PKCS1_v1_5.new(key) encrypted_text = cipher.encrypt(text.encode()) return encrypted_text.hex() ``` 解密代码示例: ```python from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_v1_5 def rsa_decrypt(text, private_key): key = RSA.import_key(private_key) cipher = PKCS1_v1_5.new(key) encrypted_text = bytes.fromhex(text) decrypted_text = cipher.decrypt(encrypted_text, None).decode() return decrypted_text ``` 以上是三种加密算法的Python实现示例,具体使用时需要根据实际需求来选择合适的算法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值