【Python】编写代码,实现恺撒密码的加密算法以及欧氏距离程序

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 在本次python文章种,编写此函数的目的,主要是为了理解和掌握自定义函数过程的定义和调用方法,以及函数中的参数的作用,本次定义的函数是恺撒密码加解密算法
作者:小5聊基础
简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑
编程原则:Write Less Do More

image.png

编号 语言或插件 修饰符 说明
1 python math.pow(x,y) 次方,math.pow(3,2),3的2次方,就是9
2 python math.sqrt(x) 平方根,math.sqrt(9)=3

【什么是恺撒密码】

1)在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术

2)它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文

3)加密逻辑:例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推

4)解密逻辑:恺撒密码的解密算法程序首先接收用户输入的加密文本,然后对字母a-z和字 母A-Z按照密码算法进行反向转换

5)位移边界需要注意

例如:正向移位三位,则x变为了a,y变为了b,z变成了c

而反向移位(向后移动),则a变成了x,b变成了y,c变成了z,d变成了a

【凯撒加密算法程序编写】

1)函数名定义为:def Caesar_cipher(n,rawstr)

其中,n表示移位数量,rawstr表示用户输入的原文

2)输入输出逻辑

先判断字符串中的字符是否在列表中,如果在,则移位n,如果不在,则原样输出

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2022.06.20 11:54
import sys 

# 先判断字符串中的字符是否在列表中,如果在,则移位n,如果不在,则原样输出
def Caesar_cipher(n,rawstr):
    new_str = ''
    str_list = 'abcdefghijklmnopqrstuvwxyz'
    max_index = len(str_list) - 1
    alpha = list(str_list)

    for value in rawstr:
        if value in alpha:
            index = str_list.find(value)
            next_index = index + n
            if next_index > max_index:
                next_index = next_index % max_index - 1
            new_str+=alpha[next_index]
        else:
            new_str+=value
    
    return new_str

while True:
    str_1 = input('请输入原文')
    n = int(input('请输入你所需要移位的数值'))
    cipher = Caesar_cipher(n,str_1)
    print(f'移位{n}后,密文为{cipher}\r\n')

【什么是欧几里得度量】

1)欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义

2)三维空间里点a和b的坐标,如果分别为a(x1,y1,z1)、b(x2,y2,z2),则ab的距离的计算机公式是

image.png

【欧氏距离实现代码编写】

1)通过上面公式可知,只要确定三位空间的两个坐标点的xyz轴的值,即可通过公式得到两点的距离

2)效果和代码编写如下

e015f226dd9adae650ce068f41763d8.png

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2022.06.20 12:19
import sys 
import math

def O_dis(a,b):
    new_str = 0
    
    # 公式:√(x1-x2)^2+(y1-y2)^2+(z1-z2)^2
    # math.sqrt(x) > math.sqrt(9) = 3 > 3^2
    # math.pow(3,2) > 3的2次方
    
    arr_b = b.split(',')
    arr_a = a.split(',')
    
    x1 = int(arr_a[0])
    y1 = int(arr_a[1])
    z1 = int(arr_a[2])

    x2 = int(arr_b[0])
    y2 = int(arr_b[1])
    z2 = int(arr_b[2])

    new_str = math.sqrt(math.pow(x1 - x2,2) + math.pow(y1 - y2,2) + math.pow(z1 - z2,2))

    return new_str

while True:
    a = input('请输入第一个位置的坐标xyz,用逗号分开')
    b = input('请输入第二个位置的坐标xyz,用逗号分开')

    value = O_dis(a,b)

    print(f'欧氏距离的值是{value}\r\n')
相关文章
|
27天前
|
存储 安全 数据安全/隐私保护
打造安全防线!Python AES&RSA加密工具,黑客绕道走的秘籍
【9月更文挑战第9天】随着数字化时代的到来,信息安全问题日益凸显。本文将介绍如何使用Python结合AES与RSA两种加密算法,构建强大的加密工具。AES以其高效性和强安全性著称,适用于大量数据的快速加密;RSA作为非对称加密算法,在加密小量数据及实现数字签名方面表现卓越。通过整合两者,可以构建既安全又灵活的加密系统。首先,需要安装pycryptodome库。接着,实现AES加密与解密功能,最后利用RSA加密AES密钥,确保其安全传输。这种设计不仅提高了数据传输效率,还增强了密钥交换的安全性,为敏感数据提供坚实保护。
176 43
|
11天前
|
数据安全/隐私保护 Python
用python对文件内容进行加密的2种方式
这篇文章介绍了使用Python对文件内容进行加密的两种方式:利用`cryptography`库的Fernet对称加密和使用`rsa`库进行RSA非对称加密。
30 6
|
9天前
|
数据安全/隐私保护 Python
Python中的MD5加密“解密”
Python中的MD5加密“解密”
25 0
|
7天前
|
人工智能 IDE 开发工具
Python实行任意文件的加密—解密
Python实行任意文件的加密—解密
15 2
|
7天前
|
人工智能 IDE 开发工具
Python实行任意文件的加密—解密
Python实行任意文件的加密—解密
15 1
|
13天前
|
供应链 数据挖掘 数据处理
聚合数据,洞察未来!Python聚合术,解锁数据背后的商业密码!
在数据泛滥的时代,数据聚合成为企业决策的关键。它通过整合不同来源的数据,揭示隐藏规律与趋势,为科学决策提供依据。Python凭借其丰富的库如Pandas和NumPy,在数据聚合中表现出色,简化了数据处理流程。通过示例展示了如何使用Pandas对销售数据进行聚合分析,帮助企业优化库存管理、调整策略,预测需求,在竞争中脱颖而出。
26 5
|
24天前
|
存储 安全 数据安全/隐私保护
安全升级!Python AES加密实战,为你的代码加上一层神秘保护罩
【9月更文挑战第12天】在软件开发中,数据安全至关重要。本文将深入探讨如何使用Python中的AES加密技术保护代码免受非法访问和篡改。AES(高级加密标准)因其高效性和灵活性,已成为全球最广泛使用的对称加密算法之一。通过实战演练,我们将展示如何利用pycryptodome库实现AES加密,包括生成密钥、初始化向量(IV)、加密和解密文本数据等步骤。此外,还将介绍密钥管理和IV随机性等安全注意事项。通过本文的学习,你将掌握使用AES加密保护敏感数据的方法,为代码增添坚实的安全屏障。
41 8
|
25天前
|
存储 安全 算法
RSA在手,安全我有!Python加密解密技术,让你的数据密码坚不可摧
【9月更文挑战第11天】在数字化时代,信息安全至关重要。传统的加密方法已难以应对日益复杂的网络攻击。RSA加密算法凭借其强大的安全性和广泛的应用场景,成为保护敏感数据的首选。本文介绍RSA的基本原理及在Python中的实现方法,并探讨其优势与挑战。通过使用PyCryptodome库,我们展示了RSA加密解密的完整流程,帮助读者理解如何利用RSA为数据提供安全保障。
43 5
|
26天前
|
安全 算法 数据安全/隐私保护
深度揭秘!Python加密技术的背后,AES与RSA如何守护你的数据安全
【9月更文挑战第10天】随着数字化时代的到来,数据安全成为企业和个人面临的重大挑战。Python 作为功能强大的编程语言,在数据加密领域扮演着重要角色。AES 和 RSA 是两种主流加密算法,分别以对称和非对称加密方式保障数据安全。AES(Advanced Encryption Standard)因其高效性和安全性,在数据加密中广泛应用;而 RSA 则利用公钥和私钥机制,在密钥交换和数字签名方面表现卓越。
53 3
|
25天前
|
存储 安全 数据库
双重防护,无懈可击!Python AES+RSA加密方案,构建最强数据安全堡垒
【9月更文挑战第11天】在数字时代,数据安全至关重要。AES与RSA加密技术相结合,构成了一道坚固防线。AES以其高效性保障数据加密,而RSA则确保密钥安全传输,二者相辅相成,提供双重保护。本文通过Python代码示例展示了这一加密方案的魅力,强调了其在实际应用中的重要性和安全性。使用HTTPS等安全协议传输加密密钥和密文,确保数据在数字世界中自由流通而无忧。
42 1
下一篇
无影云桌面