各加密模式的演示(ECB,CBC)
对于较长的明文进行加密需要进行分块加密,但是直接加密(ecb)不容易隐藏模式,用OpenCV写了个程序论证了一下
ECB
优点就是简单,可以并行计算,不会迭代误差
缺点就是隐藏不了模式

CBC
需要初始化向量IV,来加密第一块C0.
有点就是比ECB好
缺点不利于并行计算、误差会迭代,还需要初始向量

加密算法为简单的位翻转
#define bitrev(b) (((b)<<7)&0x80) | \
(((b)<<)&0x40) | \
(((b)<<)&0x20) | \
(((b)<<)&0x10) | \
(((b)>>)&0x08) | \
(((b)>>)&0x04) | \
(((b)>>)&0x02) | \
(((b)>>)&0x01)
ECB加密,就是直接分块进行加密
;i<grey->width;i++)
;j<grey->height;j++)
grey->imageData[j*grey->width+i]=bitrev(grey->imageData[j*grey->width+i]);
cvNamedWindow("ecb");
cvShowImage("ecb", grey);
CBC加密,与上一块密文异或后加密
;i<grey->width;i++)
;j<grey->height;j++)
&&j!=)
grey->imageData[j*grey->width+i]=bitrev(grey->imageData[j*grey->width+i]^grey->imageData[j*grey->width+i-]);
else
grey->imageData[]=grey->imageData[]^IV;
cvNamedWindow("cbc");
cvShowImage("cbc", grey);
效果图
原图

ECB(很明显的模式)

CBC(存在部分图像边界)

各加密模式的演示(ECB,CBC)的更多相关文章
- DES加密模式详解
DES加密模式详解 http://www.cnblogs.com/Lawson/archive/2012/05/20/2510781.html http://www.blogjava.net/wayn ...
- AES CFB/OFB/ECB/CBC/CTR优缺点
AES CFB/OFB/ECB/CBC/CTR优缺点 摘自:http://www.metsky.com/archives/418.html 发表时间:2010年05月11 分类: 网络日志 作者: 天 ...
- AES中几种加密模式的区别:ECB、CBC、CFB、OFB、CTR
AES: aes是基于数据块的加密方式,也就是说,每次处理的数据时一块(16字节),当数据不是16字节的倍数时填充,这就是所谓的分组密码(区别于基于比特位的流密码),16字节是分组长度 分组加密的几种 ...
- iOS CommonCrypto 对称加密 AES ecb,cbc
CommonCrypto 为苹果提供的系统加密接口,支持iOS 和 mac 开发: 不仅限于AES加密,提供的接口还支持其他DES,3DES,RC4,BLOWFISH等算法, 本文章主要讨论AES在i ...
- AES加密解密 助手类 CBC加密模式
"; string result1 = AESHelper.AesEncrypt(str); string result2 = AESHelper.AesDecrypt(result1); ...
- 第十八个知识点:画一个描述ECB,CBC,CTR模式的操作
第十八个知识点:画一个描述ECB,CBC,CTR模式的操作 第8周是画三个图的任务,但是维基百科上已经有人画的很好了 https://en.wikipedia.org/wiki/File:ECB_en ...
- 参考别人的代码写的aes加密,记录一下(AES,ECB模式,填充PKCS5Padding,数据块128位,偏移量无,以hex16进制输出)
package org.jimmy.autosearch2019.test; import java.security.SecureRandom; import javax.crypto.Cipher ...
- Aes加密算法加密模式介绍
本文转自:https://www.jianshu.com/p/582d3a47729a AES,高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中 ...
- DES加密算法应用:分组加密模式
通常,大多数的分组加密算法都是把数据按照64位分组的方式进行加密和解密.但是几乎所有的加密工作所涉及的数据量都远远大于64位,因此就需要不断地重复加密过程,直到处理完所有的分组.这种分组加密中所涉及的 ...
随机推荐
- 严苛模式(StrictMode)
Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益.那它都做什么呢?它将报告与线程及虚拟机相关的策 ...
- [PWA] 0. Introduce to Offline First
Why offline first? Imagin you are visiting a website, it is fine if wifi connection is good. It migh ...
- [Angular 2] ng-control & ng-control-group
Control: Controls encapsulate the field's value, a states such as if it is valid, dirty or has error ...
- php 二维数组转换成树状数组(转)
<?php/** * @param array $list 要转换的结果集 * @param string $pid parent标记字段 * @param string $level leve ...
- poj2993 poj2669
扯淡题. 2993 #include <iostream> #include <stdio.h> #include <string> #include <st ...
- iOS平台基于ffmpeg的视频直播技术揭秘
现在非常流行直播,相信很多人都跟我一样十分好奇这个技术是如何实现的,正好最近在做一个ffmpeg的项目,发现这个工具很容易就可以做直播,下面来给大家分享下技术要点: 首先你得编译出ffmpeg运行所需 ...
- Array数组基本案例:图书基本录入输出系统
import java.util.Scanner; public class ArrayTest{ public static void main(String args[]){ Scanner sc ...
- Android 开源项目 eoe 社区 Android 客户端(转)
本文内容 环境 开源项目 eoe 社区 Android 客户端 本文介绍 eoe 社区 Android 客户端.它是一个开源项目,功能相对简单,采用侧边菜单栏.可以学习一下.点击此处查看 GitHub ...
- Python访问sqlite3数据库取得dictionary的正路!
[引子] 很多人都知道,Python里是内置了很好用的sqlite3的.但这个库有个缺陷,在执行fetchall()/fetchone()等方法后,得到的是一个tuple.以前吧,做自己的小项目,tu ...
- javascript 动态控制复选框的选择和取消
这里就需要引入一个jquery-1.4.2.js 就行了,因为用到了里面的选择器 <html> <head> <script type="text/javasc ...