维吉尼亚密码的加密解密

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: # -*- coding:utf-8 -*-def weijiniya_jiemi(ciphertext,key):ascii='ABCDEFGHIJKLMNOPQRSTUVWXYZ'keylen=len(key)ctlen=len(ciph...

# -*- coding:utf-8 -*-

def weijiniya_jiemi(ciphertext,key):

ascii='ABCDEFGHIJKLMNOPQRSTUVWXYZ'

keylen=len(key)

ctlen=len(ciphertext)

plaintext = ''

i = 0

while i < ctlen:

j = i % keylen

k = ascii.index(key[j])

m = ascii.index(ciphertext[i])

if m < k:

m += 26

plaintext += ascii[m-k]

i += 1

print plaintext

def weijiniya_jiami(plaintext,key):

ascii='ABCDEFGHIJKLMNOPQRSTUVWXYZ'

keylen=len(key)

ptlen=len(plaintext)

ciphertext = ''

i = 0

while i < ptlen:

j = i % keylen

k = ascii.index(key[j])

m = ascii.index(plaintext[i])

ciphertext += ascii[(m+k)%26]

i += 1

print ciphertext

def main():

print 'CHOICE:'

print '1:weijiniya_jiami'

print '2:weijiniya_jiemi'

choice = input()

if choice == 1:

plaintext = input('jiama_string1:')

key = input('key:')

weijiniya_jiami(plaintext,key)

elif choice == 2:

ciphertext = input('jiemi_string1:')

key = input('key:')

weijiniya_jiemi(ciphertext,key)

else:

print('error!')

main()

if __name__ == '__main__':

main()

好像cmd窗口有点问题,中文一直显示不出来,就直接用拼音了哈哈哈。。。



再加一个凯撒的,虽然直接有网址可以解:

# -*- coding:utf-8 -*-

defchange(c,i):

c = c.lower()

num =ord(c)

ifnum >=97andnum <=122:

num =97+ ((num -97) + i) %26

returnchr(num)

defkaisa_jiami(string,i):

string_new =''

forsinstring:

string_new += change(s,i)

print(string_new)

returnstring_new

defkaisa_jiemi(string):

foriinrange(25):

print('\n', i,'\n')

i +=1

kaisa_jiami(string,i)

defmain():

print('请选择需要的操作:')

print('1:凯撒加密')

print('2:凯撒解密')

choice =input()

ifchoice ==1:

string =input('请输入需要加密的字符串:')

num =int(input('请输入需要偏移的位数:'))

kaisa_jiami(string,num)

elifchoice ==2:

string =input('请输入需要解密的字符串:')

kaisa_jiemi(string)

else:

print('输入错误,请重试!')

main()

if__name__ =='__main__':

main()

目录
相关文章
|
6月前
|
druid Java 数据库
druid+springboot加解密Druid链接池配置加密密码链接数据库
druid+springboot加解密Druid链接池配置加密密码链接数据库
316 0
|
3月前
|
存储 NoSQL 数据库
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
这篇文章讲述了在分布式微服务系统中添加用户注册和登录功能的过程,重点介绍了用户注册时通过远程服务调用第三方服务获取短信验证码、使用Redis进行验证码校验、对密码进行MD5加密后存储到数据库,以及用户登录时的远程服务调用和密码匹配校验的实现细节。
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
|
25天前
|
存储 Java 数据库
密码专辑:对密码加盐加密,对密码进行md5加密,封装成密码工具类
这篇文章介绍了如何在Java中通过加盐和加密算法(如MD5和SHA)安全地存储密码,并提供了一个密码工具类PasswordUtils和密码编码类PasswordEncoder的实现示例。
29 10
密码专辑:对密码加盐加密,对密码进行md5加密,封装成密码工具类
|
24天前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
22 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
1月前
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
94 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
6月前
|
算法 数据库 数据安全/隐私保护
rsa加密解密,使用rsa对密码加密
rsa加密解密,使用rsa对密码加密
|
2月前
|
存储 安全 算法
RSA在手,安全我有!Python加密解密技术,让你的数据密码坚不可摧
【9月更文挑战第11天】在数字化时代,信息安全至关重要。传统的加密方法已难以应对日益复杂的网络攻击。RSA加密算法凭借其强大的安全性和广泛的应用场景,成为保护敏感数据的首选。本文介绍RSA的基本原理及在Python中的实现方法,并探讨其优势与挑战。通过使用PyCryptodome库,我们展示了RSA加密解密的完整流程,帮助读者理解如何利用RSA为数据提供安全保障。
102 5
|
2月前
|
安全 数据安全/隐私保护 Python
情书也能加密?Python AES&RSA,让每一份数据都充满爱的密码
【9月更文挑战第8天】在这个数字化时代,情书不再局限于纸笔,也可能以电子形式在网络中传递。为了确保其安全,Python提供了AES和RSA等加密工具,为情书编织爱的密码。首先,通过安装pycryptodome库,我们可以利用AES对称加密算法高效保护数据;接着,使用RSA非对称加密算法加密AES密钥和IV,进一步增强安全性。即使情书被截获,没有正确密钥也无法解读内容。让我们用Python为爱情编织一张安全的网,守护每份珍贵情感。
46 2
|
3月前
|
安全 数据安全/隐私保护 Python