基于Matlab的RC4加密图像
文章目录
- 前言
- 一、RC4密码介绍
- 二、MATLAB代码
- 1.密钥初始化
- 2.加(解)密算法
- 3.使用实例
- 展示加密与恢复效果
- 在这里插入图片描述
- 总结
前言
本篇文章简单记录一个我自己改写的RC4加密算法,用来加密图片
一、RC4密码介绍
RC4密码是一个简单高效的对称流密码,可以用来加密文本和图片。它的初始密钥长度可以不固定,加密和解密的过程是一样的,也就是对密文在调用一次加密算法就可以得到明文。
二、MATLAB代码
1.密钥初始化
代码如下:
function s = KSA(key)
%rc4的密钥初始化函数
[keylen, n] = size(key);
s = zeros(1,256);
for i=1:256s(i)=i;
end
j=1;
for i=1:256j=mod(j+s(i)+key(i),256);if j==0j=256;endtemp=s(i);s(i)=s(j);s(j)=temp;
end
2.加(解)密算法
代码如下:
function result = RC4_img(Img,key)
%对图像进行加解密
%Lmg为带价密的图像,key为密钥
[height,weight] = size(Img);
result = zeros(height,weight);
i=1;
for row=1:heightfor col=1:weighti=mod(i,256);if i==0i=256;endresult(row,col) =bitxor(Img(row,col),key(i));i=i+1;end
end
result = uint8(result);
3.使用实例
这里面的key读取了存储在keytxt中的固定密钥,里面可以是数字也可以是字符,长度也没有限制,但是超过256位之后是不会用到的。应该自己在本地添加一个keytxt文件,和你的Matlab文件放在一个文件夹中就行。
代码如下:
clc;clear all;
img = imread('lena.bmp');
I = rgb2gray(img); % 灰度化
key = textread('keytxt');
s = KSA(key);
s=uint8(s);RC4Img = RC4_img(I,s);
ReRC4Img =RC4_img(RC4Img,s);figure
subplot(2,2,1);imshow(I);title('original image');
subplot(2,2,2);imshow(RC4Img);title('after RC4');
subplot(2,2,3);imshow(ReRC4Img);title('restore RC4');
展示加密与恢复效果
总结
以上就是今天要讲的内容,本文只是RC4的一种简单实现,学海无涯,代码为伴,继续加油。
基于Matlab的RC4加密图像相关推荐
- matlab指纹图像采集,基于MATLAB实现的指纹图像预处理
西南民族大学学报·自然科学版第 34 卷第 4 期 Journal of Southwest University for Nationalities⋅Natural Science Edition ...
- 干货分享 基于MATLAB的带噪图像的高斯滤波论文
基于MATLAB的带噪图像的高斯滤波 摘要:图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声.脉冲噪声.高斯噪声等.椒盐噪声含有随机出现的黑白 ...
- 基于MATLAB的带噪图像的高斯滤波
基于MATLAB的带噪图像的高斯滤波 摘要:图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声.脉冲噪声.高斯噪声等.椒盐噪声含有随机出现的黑白 ...
- matlab形态学降噪,基于MATLAB的荧光分子图像降噪方法
基于MATLAB的荧光分子图像降噪方法 [摘要]:医学成像是一种身体内部的视觉显示的技术,用于临床分析和医学干预.其目它旨在揭示身体的内部结构,以便进行诊断和治疗.医学成像产生了大量数据,可形成常规解 ...
- matlab 浮雕,基于MATLAB实现石刻浮雕图像“数字拓片”技术的研究
第 36 卷 第 2 期2009 年 2 月 计 算 机 科 学 Computer Science Vol. 36 No. 2 Feb. 2009 到稿日期:200806230 朱晓丽 博士研究生 , ...
- 基于matlab编程实现SAR图像多视处理
目录 一.概念 二.技术流程 2.1 第一种方法 2.2 第二种方法 三.matlab编程 3.1 第一种方法部分代码 3.2 第二种方法部分代码 摘要: 本博客讲解SAR图像多视处理原理和方法,并用 ...
- 基于MATLAB二值化图像的形态学处理
在Matlab中将一幅图像阈值分割二值化非常简单,若需要通过阈值th2二值化保留一些大面积的.且有灰度值含有大于th1的点的前景区域,而不需要小面积的区域(th1大于th2),这时会遇到这样的问题:当 ...
- 书法拓片matlab,基于MATLAB实现石刻浮雕图像-数字拓片-技术的研究
第36卷第2期计算机科学V01.36No.2:!Q!生:旦堡Q里巳坚!竺!墨!i呈坚竺至!!::QQ皇基于MATLAB实现石刻浮雕图像"数字拓片"技术的研究 朱晓丽吴中福李颖 (重庆大学计算 ...
- 【图像加密】基于matlab GUI Logistic混沌图像加密与解密【含Matlab源码 1216期】
⛄一.混沌图像加密与解密简介 混沌系统图像加密解密理论部分参考链接: 基于混沌系统的图像加密算法设计与应用 ⛄二.部分源代码 %加密程序 function b=jiami(a,s,h) [m1,n1] ...
最新文章
- jhello框架-ajax
- jmh气象传真图网站_在冬奥滑雪场,他凭着气象信息,念好一本生意经
- ActiveMQ的自定义安全插件(十)
- 学习笔记(20):Python网络编程并发编程-互斥锁与join的区别
- 张一鸣:优秀年轻人的五个特点
- web加减乘除法c#_c# 两个数的加减乘除
- python处理LINUX的PWD文档
- android 使用so库,Android 使用SO库
- ELK日志分析系统迁移记录
- get函数与getline函数
- Ubuntu下面安装MySQL shell
- 进行桌面共享软件开发的市场前景如何
- SSD1306驱动理解
- wingFTP实现访问共享目录
- 小程序创建搜索记录,获取搜索记录,删除搜索历史
- CSDN如何删除上传的资源
- 为什么现代物理学离不开量子论和相对论?
- 计算图片中矩形间的IOU
- 常用元数据标准/受控词表/本体词汇表/的命名空间前缀及IRI链接汇总
- java中的常见异常1 -- 新手上路,减速慢行
热门文章
- 常用几种消息摘要算法
- Spring-Mail发邮件
- python 爬取12306网站车次信息
- kbmmw 做REST 服务签名认证的一种方式
- 网络中立:YouTube联名上书
- 实训——基于 Logisim 的 RISC-V 处理器设计
- python中point什么意思_Python如何使用菲奥娜来确定这些多边形中的哪些点?,python,利用,fiona,判定,那些,point,在,polygon,内...
- python中append函数解析_python中append函数的用法
- java形参列表怎么理解_关于Java中形参与实参的理解
- 谷歌浏览器快捷键总结