分组密码模式: ECB模式(电子密码本模式)

在ECB模式中,将明文分组加密之后的结果直接作为密文分组,如下图所示:

使用ECB模式加密时,相同的明文分组会被转换为相同的密文分组,也就是说,我们可以将其理解为是一个巨大的"明文分组→密文分组"的对应表,因此ECB模式也称为电子密码本模式。

ECB模式优点:

1. 简单

2. 有利于并行计算

3. 误差不会被传送

ECB模式缺点:

1. 不能隐藏明文的模式

2. 可能对明文进行主动攻击

对ECB模式的攻击,截图来源自图解密码技术一书:

ECB模式的加密:

‘‘‘
假设加密分组为4字节一组
‘‘‘
def Encrypt(strData, key) :
    strEnData = ""
    for i in range(0, len(strData)):
        #按位异或后保存
        rst = ord(list(strData)[i]) ^ ord(list(key)[i])
        strEnData = strEnData + chr(rst)
    return strEnData

def Decrypt(strData, key) :
    strDeData = ""
    for i in range(0, len(strData)):
        #再次异或还原
        rst = ord(list(strData)[i]) ^ ord(list(key)[i])
        strDeData = strDeData + chr(rst)
    return strDeData

if __name__ == ‘__main__‘ :
    strData = "Hello World!"
    key = "1234"
    i = 0
    j = 4
    strEnData = ""

    print("原数据: %s\r\n" % strData)

    while True :
        strGroup = strData[i:j]
        if strGroup == ‘‘ :
            break
        strEnData += Encrypt(strGroup, key)
        i += 4
        j += 4

    print("加密后: %s\r\n" % strEnData)
    strDeData = ""
    i = 0
    j = 4

    while True :
        strGroup = strEnData[i:j]
        if strGroup == ‘‘ :
            break
        strDeData += Decrypt(strGroup, key)
        i += 4
        j += 4

    print("解密后: %s\r\n" % strDeData)
    

原数据: Hello World!

加密后: yW_X^d[C^W

解密后: Hello World!

时间: 2024-11-07 18:23:45

分组密码模式: ECB模式(电子密码本模式)的相关文章

【.NET Core项目实战-统一认证平台】第十一章 授权篇-密码授权模式

[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章介绍了基于Ids4客户端授权的原理及如何实现自定义的客户端授权,并配合网关实现了统一的授权异常返回值和权限配置等相关功能,本篇将介绍密码授权模式,从使用场景.源码剖析到具体实现详细讲解密码授权模式的相关应用. .netcore项目实战交流群(637326624),有兴趣的朋友可以在群里交流讨论. 一.使用场景? 由于密码授权模式需要用户在业务系统输入账号密码,为了安全起见,对于使用密码模式的业务系统,我们认为是绝对可靠的,不存在

分组加密的四种模式(ECB、CBC、CFB、OFB)

加密一般分为对称加密(Symmetric Key Encryption)和非对称加密(Asymmetric Key Encryption). 对称加密又分为分组加密和序列password. 分组password.也叫块加密(block cyphers).一次加密明文中的一个块.是将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆运算),还原成明文组. 序列password.也叫流加密(stream cyphers),一次加密明文中的一个位.是指利用少量的密钥(

对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)

对称加密和分组加密中的四种模式(ECB.CBC.CFB.OFB) 一. AES对称加密: AES加密 分组 二. 分组密码的填充 分组密码的填充 e.g.: PKCS#5填充方式 三. 流密码:   四. 分组密码加密中的四种模式: 3.1 ECB模式 优点: 1.简单: 2.有利于并行计算: 3.误差不会被传送: 缺点: 1.不能隐藏明文的模式: 2.可能对明文进行主动攻击: 3.2 CBC模式: 优点: 1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL.IPSec的标准.

分组对称加密模式:ECB/CBC/CFB/OFB(转)

一般的加密通常都是块加密,如果要加密超过块大小的数据,就需要涉及填充和链加密模式,文中提到的ECB和CBC等就是指链加密模式.在C#组件中实现的很多算法和Java都不太兼容,至少我发现RSA和AES/ECB是如此.研究了AES/ECB时发现了这篇文档,图还画的不错,先记下.注意,还缺一种CTR的模式. 对称加密和分组加密中的四种模式(ECB.CBC.CFB.OFB) 一. AES对称加密:                                                     

Linux_破解密码-营救模式

实验用机:CentOS 5.7 破解密码 设置开机启动界面 系统运行级别 营救模式 一.破解密码 root用户可以更改任何用户的密码,普通用户只能修改自己的密码. 步骤: 1.重新启动系统 2.开机倒数时间内,敲任意键 3.按字母e去编辑 4.选择kernel 开头的行,再次按字母e 编辑 然后敲空格 输入数字1,再敲回车 进入单用户模式,破解密码.(此模式绕过密码验证) 5.按字母键b 去引导进入系统 6.直接passwd 修改root用户的密码 7.输入init 5或者init 3 进入系统

Cisco路由器基础安全配置---特权模式和VTY线路密码

我们在用console线连接好路由器和电脑后,启动路由器并用putty连接到路由器的控制台(console)后,建议先配置路由器的主机名(hostname)以方便识别,配置特权模式(enable)密码和vty(telnet)密码以保护路由器. Cisco路由器的特权模式密码分为明文密码和加密密码,这里建议直接配置加密密码,因为明文密码可以通过show running_configure 命令直接看到. 设置enable明文密码 Router> enable                 ' 用

CentOS单用户模式下修改ROOT密码和grub加密

Linux 系统处于正常状态时,服务器主机开机(或重新启动)后,能够由系统引导器程序自动引导 Linux 系统启动到多用户模式,并提供正常的网络服务.如果系统管理员需要进行系统维护或系统出现启动异常时,就需要进入单用户模式或修复模式对系统进行管理了. 使用单用户模式有一个前提,就是您的系统引导器(grub)能正常工作,否则要进行系统维护就要使用修复模式. 特注:进入单用户模式,没有开启网络服务,不支持远程连接 Linux 系统中不同的运行级别(Run Level)代表了系统的不同运行状态,例如

救援修复模式下破解root密码

本文用户在忘记root及其他管理员的密码情况下,且grub已进行了加密,因此需要利用光盘启动系统,在系统救援模式下对grub进行解锁,然后就可以利用单用户模式重新设置root密码: 1.用户光盘启动系统,并选择rescue installed system 2.启动后会让设置一些列相关设置: 语言设置: 键盘设置: 是否启用网卡,可以启用,我选不启用: 一说说明,点continue: 提示将要将之前的系统挂载到/mnt/sysimage,点ok进行下一步: 已经将之前的系统挂 载到/mnt/sy

centos单用户模式:修改ROOT密码和grub加密

centos单用户模式:修改ROOT密码和grub加密 CentOSLinux网络应用配置管理应用服务器 Linux 系统处于正常状态时,服务器主机开机(或重新启动)后,能够由系统引导器程序自动引导 Linux 系统启动到多用户模式,并提供正常的网络服务.如果系统管理员需要进行系统维护或系统出现启动异常时,就需要进入单用户模式或修复模式对系统进行管理了. 使用单用户模式有一个前提,就是您的系统引导器(grub)能正常工作,否则要进行系统维护就要使用修复模式.特注:进入单用户模式,没有开启网络服务