1、 理解流密码的基本思想
2、 掌握RC4加密算法的加解密过程和实现方法
3、 采用自己熟悉的编程语言实现RC4密码算法。给定密钥abcde,试对明文“Shenzhen University”加密(注:明文包括空格,但不包括引号)。

# RC4的Python实现
def S_box(R):  # S盒S = [x for x in range(256)]j = 0#S盒打乱顺序for i in range(256):j = (j + S[i] + K[i]) % 256S[i], S[j] = S[j], S[i]return Sdef gen_K(key):#将字符串转换为ASCII码temp = list(bytes(key, encoding='utf-8'))#print('密钥的ASCII码:', temp)len_key = len(temp)#填充密钥K = [temp[i % len_key] for i in range(256)]return K#根据密文长度生成密钥流
def key_box(S, length):j = 0keys = []length = int(length)for i in range(length):i = (i + 1) % 256j = (j + S[i]) % 256S[i], S[j] = S[j], S[i]t = (S[j] + S[i]) % 256k = S[t]keys.append(k)return keyswhile(1):choose = input('加密输入1,解密输入2,退出输入3:')if choose == '1':key = input('请输入密钥:')K = gen_K(key)S = S_box(K)# print('S:',S)message = input('输入明文:')secret = ''keys = key_box(S, len(message))print("十进制密钥流:",keys)for i in range(len(message)):secret = secret + '%02x' % (keys[i] ^ ord(message[i]))print('加密后十六进制密文为:', secret)if choose == '2':key = input('请输入密钥:')K = gen_K(key)S = S_box(K)# print('S:',S)secret = input('请输入密文:')message = ''keys = key_box(S, len(secret) / 2)for i in range(int(len(secret) / 2)):message = message + chr(int(secret[0:2], 16) ^ keys[i])secret = secret[2:]print('解密后明文为:', message)if choose == '3':break

流密码-python实现RC4加密相关推荐

  1. python 加密解密 rc4_python实现rc4加密解密,base64输出

    这里将告诉您python实现rc4加密解密,base64输出,具体实现方法:from Crypto.Cipher import ARC4 as rc4cipher import base64 def ...

  2. RC4加密方式及代码实现

    定义 RC4是一种流密码,通过明文流逐位加密产生密文.同时,他是一种对称密码,加密解密使用同一个密钥,下面这幅图,可以很好的说明RC4这样的流密码的加密过程. 原理 RC4加密的原理主要分三步: 初始 ...

  3. python实现RC4加密算法

    python实现RC4加密算法 RC4加密算法是一种对称的加密算法,加密解密用一个函数即可完成.在网上有好多实现算法写的非常复杂,加密解密用了两个不同的方法.因此在这里分享一个Python实现的RC4 ...

  4. RC4加密解密算法123

           RC4是一种对称密码算法,它属于对称密码算法中的序列密码(streamcipher,也称为流密码),它是可变密钥长度,面向字节操作的流密码. RC4是流密码streamcipher中的一 ...

  5. 基于JAVA的RC4加密解密算法循环实现

    RC4算法是一种对称加密算法,所谓对称加密,就是加密和解密的过程是一样的,加密和解密均采用同一把密钥.RC4算法的特点是算法简单,执行速度快安全性比较高并且密钥长度是可变的,可变范围为1-256字节( ...

  6. rc4加密算法c语言实现,python实现RC4加密算法

    1. 背景介绍 1.1 RC4算法 在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变.它加解密使用相同的密钥,因此也属于对称加密算法.RC4是有线等效加密( ...

  7. python实现md5加密_Python实现md5加密验证访问接口总结

    实现md5加密验证访问接口总结 作者:李祥权 [摘要] 在项目开发中,遇到用户端点登陆接口需要加密验证才可以登陆的情况,当我们需要访问对方的接口时,为了保证访问的安全性,使用python实现md5加密 ...

  8. 用python实现AES加密解密

    文章目录 背景 测试数据 代码 遗留问题 补充(2021.10.6) 背景 以蓝牙官方协议(V5.0)中的 sample data 为例子,看看怎么用 python 实现 AES 加密和解密. 测试数 ...

  9. 【Python基础】加密你的Python源码顺便再打个包如何?

    本篇为专属于"交通科研Lab"志愿者系列推文活动,为大家带来交通高校硕博们原创推文.为作者点赞,欢迎大家关注交流!!! 点击蓝字 关注我们 成为一个智慧.快乐和富有的人. --王宇 ...

最新文章

  1. logistic回归 简介_金融专业进!逻辑回归模型简述
  2. 近两年火热的微服务springboot不同配置文件详细讲解
  3. Singing Superstar 字符串哈希-map操作
  4. 随笔编号-09 批量导入数据(Mysql)报MySQL server has gone away 问题的解决方法
  5. 如何创建一个完美的单例模式
  6. 前端学习(547):node的系统模块fs
  7. BugkuCTF-Reverse题游戏过关多解法
  8. 不管你学的是什么专业,你都应该多少懂些管理学的...
  9. JDK+MyEclipse+Tomcat的配置(修改Tomcat 6.x的端口)
  10. 运维部门工作总结_部门动态 | 主动出击 超前谋划 全面做好园区网络运维工作...
  11. 关于Mysql服务自动关闭以及无法启动问题的解决办法
  12. vmware的xp虚拟机更改虚拟硬盘序列号
  13. 校园云盘-育网云盘本地部署
  14. 保存Simulink仿真模型为图片及PDF
  15. 保持hlist_node内存的紧凑性连续性以提高遍历性能
  16. c语言实验报告(四) 从键盘输入字符串a和字符串b,并在a串中的最小元素(不含结束符)后面插入字符串b....
  17. 训练报错:RuntimeError: CUDA error: device-side assert triggered
  18. 大数据要学javaweb吗_纠结!Java和大数据学哪个更好?
  19. 【Java知识体系】Redis实用教程,深入原理
  20. BI_开发_问题:ORA-26002: Table DWH.W_XACT_TYPE_D has index defined upon it.

热门文章

  1. STM32F1读取MLX90632非接触式红外温度传感器
  2. Java根据Calendar推算时间公共方法
  3. 便签加锁软件 加密便签安卓版下载
  4. python中国象棋github_GitHub - bupticybee/elephantfish: elephantfish: 一个只有124行的中国象棋引擎...
  5. 抖音淘客直播新玩法,产品免费送,也能月赚几万元
  6. c语言计算试题及答案,2001年4月全国计算机等级考试二级C语言笔试试题及答案...
  7. SuperMap iMobile for Android许可介绍
  8. C/C++编程学习 - 第4周 ④ 0与1
  9. Win10离线安装.NET Framework 3.5的方法 (附cab格式离线安装包下载)
  10. java代码使用ImageJ解析dicom文件成图片