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. ASP.NET Core WebAPI中的分析工具MiniProfiler
  2. 【DIY】简单粗暴低成本Arduino四轴机械臂方案,创客教育学习使用舵机首选方案!...
  3. impala 连接mysql_impala系列: 基本命令和jdbc连接
  4. JavaWeb黑马旅游网-学习笔记05【分类数据展示功能】
  5. jsp头文件的内容/response.setHeader
  6. BZOJ1832: [AHOI2008]聚会
  7. Python 中的反转字符串:reversed()、切片等
  8. (转) 基于Arcgis for Js的web GIS数据在线采集简介
  9. C++ vector越界的问题
  10. 苹果系统模拟器_全球首款 iOS 模拟器来袭:免费得一台苹果手机!
  11. 25、ExtJs操作用友华表Cell插件(No.1)认识Cell
  12. Unity + LeapMotion 识别食指伸出以及食指与 UGUI的 交互
  13. linux777是什么权限,linux设置777权限意思
  14. SVM学习总结(三)SMO算法流程图及注释源码
  15. MySQL数据库(二)高级
  16. JavaScript - H5 网页拨打电话功能、发送短信、发送邮件(支持 HTML 与 JS 形式)点击自动调起手机拨打并填充手机号
  17. hashcat学习笔记0 安装与例子
  18. WPF工控组态软件之管道和冷却风扇开发
  19. 代码Verify简介
  20. 沐圣moolsun:做真正的民族品牌

热门文章

  1. Java技能树-GUI-AWT-组件-TextField类
  2. BLE LL的SN和NESN
  3. vage mysql_R基础学习(三)-- 简单练习(shiny+mysql+barplot)
  4. 旅行世界显示服务器繁忙,旅行世界用户暴增,合成游戏哪个好?
  5. JavaScript学习笔记(第二部分)总共四部分
  6. Windows 写笔记工具——VNote
  7. Linux 终端自动安装orical java8 和 Android studio
  8. dell服务器从u盘启动装系统,dell r720服务器 怎么从u盘启动
  9. 直立电动摩托车的内部结构
  10. flutter拍照、拍摄短视频、选择图片