Python——验证密码学常见运算

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
可观测链路 OpenTelemetry 版,每月50GB免费额度
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: Python——验证密码学常见运算

00 前情提要

最近处于期末复习阶段,对于现代密码学这门学科来说,解题过程中经常出现几种运算的身影,其中包括整数模运算、分数模运算、乘法逆元运算等。

而为方便检验自己的笔算结果,这里使用一个简单的python程序验证计算结果。

01 实现背景

先来简单举几个笔算的例子,既方便大家理解,也方便用于验证python脚本的正确性。

整数模运算,如 2 mod 5 = 2

分数模运算,如 1/3 mod 5 = 2

乘法逆元运算,1 关于 6 的乘法逆元为 7

02 实现源码

import os
def ny(e,z):
    k=1
    e=e%z
    while((k*z+1)%e!=0):
        k=k+1
    d=int((k*z+1)/e)
    return d

def myfmod():
    a=int(input("请输入分子:"))
    b=int(input("请输入分母:"))
    c=int(input("请输入模:"))
    g=a
    a=a%c
    d=(a*ny(b,c))%c
    print("分数%d/%d模%d的余数为%d"%(g,b,c,d))
    f=input("按任意键继续")

def mymod():
    a=int(input("请输入整数:"))
    b=int(input("请输入模:"))
    print("整数数%d模%d的余数为%d"%(a,b,a%b))
    f=input("按任意键继续")

flag=1
while(flag!=0):
    print("欢迎使用密码学计算器")
    print("1.求整数模")
    print("2.求分数模")
    print("3.求乘法逆元")
    print("0.退出")
    flag=int(input("请选择:"))
    if flag==1:
        mymod()
    elif flag==2:
        myfmod()
    elif flag==3:
        a=int(input("请输入整数a:"))
        b=int(input("请输入整数b:"))
        print(f'{a}关于{b}的乘法逆元为{ny(a,b)}')
        f=input("按任意键继续")
    os.system('cls')



03 实现效果

image.png

image.png

image.png

目录
相关文章
|
1月前
|
数据处理 Python
彻底掌握Python集合:无序性、去重神器与高效集合运算指南
彻底掌握Python集合:无序性、去重神器与高效集合运算指南
|
9天前
|
Python
Python线程是操作系统能够进行运算的最小单位
【7月更文挑战第18天】Python线程是操作系统能够进行运算的最小单位
11 1
|
16天前
|
数据可视化 数据挖掘 数据处理
Python对Excel两列数据进行运算【从基础到高级的全面指南】
【7月更文挑战第6天】使用Python的`pandas`库处理Excel数据,涉及安装`pandas`和`openpyxl`,读取数据如`df = pd.read_excel('data.xlsx')`,进行运算如`df['Sum'] = df['Column1'] + df['Column2']`,并将结果写回Excel。`pandas`还支持数据筛选、分组、可视化、异常处理和性能优化。通过熟练运用这些功能,可以高效分析Excel表格。
21 0
|
1月前
|
机器学习/深度学习 算法 Serverless
利用无穷级数逼近计算幂运算与开根号——Python实现
使用泰勒级数逼近法,本文介绍了如何用Python计算特殊幂运算,包括分数次幂和开根号。通过定义辅助函数,如`exp`、`getN_minus_n`、`multi`和`getnum`,实现了计算任意实数次幂的功能。实验结果显示,算法能有效计算不同情况下的幂运算,例如`0.09^2`、`1^2`、`0.25^2`、`0.09^(0.5)`、`1^(0.5)`和`0.25^(0.5)`。虽然精度可能有限,但可通过调整迭代次数平衡精度与计算速度。
|
23天前
|
语音技术 开发者 Python
语音识别,python运行H ~W~,要使用英符,执行Python的流程是输入Python,回车,解释器的两大功能,翻译代码,提交计算机运算,多行代码运行,写一个py文件,pycharm安
语音识别,python运行H ~W~,要使用英符,执行Python的流程是输入Python,回车,解释器的两大功能,翻译代码,提交计算机运算,多行代码运行,写一个py文件,pycharm安
|
1月前
|
Python
|
2月前
|
存储 安全 网络安全
Python网络安全与密码学
【5月更文挑战第23天】 探索Python在网络安全与密码学的实践,从加密算法(如AES、RSA)和哈希函数(MD5、SHA-256)到网络安全工具(Scapy、Socket)的应用。了解如何使用PyCryptodome和hashlib进行加密解密及哈希计算,通过Scapy进行网络数据包操作和端口扫描,利用Socket实现TCP通信。深入密码学,学习RSA加密和数字签名,以及使用Django和Flask实现安全Web开发。此外,掌握高级网络安全技术,如Wireshark流量分析、Bro/Zeek入侵检测,以及自动化安全运维(Ansible)和安全数据分析(Pandas、Matplotlib)。
32 2
|
2月前
|
存储 Java C#
使用Python实现简易的用户登录验证功能
这篇文章将向你展示如何使用Python语言进行程序设计,实现一个简易的用户登录验证功能。 该功能允许用户输入由字母和数字任意组合而成的用户名和密码,并通过while循环不断地提示用户输入,直到凭证正确为止。所有凭证信息将被存储在一个字典中,以便进行匹配验证。
|
1月前
|
存储 算法 数据可视化
python多种算法对比图解实现 验证二叉树搜索树【力扣98】
python多种算法对比图解实现 验证二叉树搜索树【力扣98】
|
1月前
|
存储 数据处理 Python
Python3 运算符大解密:掌握运算法宝,事半功倍!
Python3 运算符大解密:掌握运算法宝,事半功倍!