文章目录

  • 前言
  • 一、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加密图像相关推荐

  1. matlab指纹图像采集,基于MATLAB实现的指纹图像预处理

    西南民族大学学报·自然科学版第 34 卷第 4 期 Journal of Southwest University for Nationalities⋅Natural Science Edition ...

  2. 干货分享 基于MATLAB的带噪图像的高斯滤波论文

    基于MATLAB的带噪图像的高斯滤波 摘要:图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声.脉冲噪声.高斯噪声等.椒盐噪声含有随机出现的黑白 ...

  3. 基于MATLAB的带噪图像的高斯滤波

    基于MATLAB的带噪图像的高斯滤波 摘要:图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声.脉冲噪声.高斯噪声等.椒盐噪声含有随机出现的黑白 ...

  4. matlab形态学降噪,基于MATLAB的荧光分子图像降噪方法

    基于MATLAB的荧光分子图像降噪方法 [摘要]:医学成像是一种身体内部的视觉显示的技术,用于临床分析和医学干预.其目它旨在揭示身体的内部结构,以便进行诊断和治疗.医学成像产生了大量数据,可形成常规解 ...

  5. matlab 浮雕,基于MATLAB实现石刻浮雕图像“数字拓片”技术的研究

    第 36 卷 第 2 期2009 年 2 月 计 算 机 科 学 Computer Science Vol. 36 No. 2 Feb. 2009 到稿日期:200806230 朱晓丽 博士研究生 , ...

  6. 基于matlab编程实现SAR图像多视处理

    目录 一.概念 二.技术流程 2.1 第一种方法 2.2 第二种方法 三.matlab编程 3.1 第一种方法部分代码 3.2 第二种方法部分代码 摘要: 本博客讲解SAR图像多视处理原理和方法,并用 ...

  7. 基于MATLAB二值化图像的形态学处理

    在Matlab中将一幅图像阈值分割二值化非常简单,若需要通过阈值th2二值化保留一些大面积的.且有灰度值含有大于th1的点的前景区域,而不需要小面积的区域(th1大于th2),这时会遇到这样的问题:当 ...

  8. 书法拓片matlab,基于MATLAB实现石刻浮雕图像-数字拓片-技术的研究

    第36卷第2期计算机科学V01.36No.2:!Q!生:旦堡Q里巳坚!竺!墨!i呈坚竺至!!::QQ皇基于MATLAB实现石刻浮雕图像"数字拓片"技术的研究 朱晓丽吴中福李颖 (重庆大学计算 ...

  9. 【图像加密】基于matlab GUI Logistic混沌图像加密与解密【含Matlab源码 1216期】

    ⛄一.混沌图像加密与解密简介 混沌系统图像加密解密理论部分参考链接: 基于混沌系统的图像加密算法设计与应用 ⛄二.部分源代码 %加密程序 function b=jiami(a,s,h) [m1,n1] ...

最新文章

  1. jhello框架-ajax
  2. jmh气象传真图网站_在冬奥滑雪场,他凭着气象信息,念好一本生意经
  3. ActiveMQ的自定义安全插件(十)
  4. 学习笔记(20):Python网络编程并发编程-互斥锁与join的区别
  5. 张一鸣:优秀年轻人的五个特点
  6. web加减乘除法c#_c# 两个数的加减乘除
  7. python处理LINUX的PWD文档
  8. android 使用so库,Android 使用SO库
  9. ELK日志分析系统迁移记录
  10. get函数与getline函数
  11. Ubuntu下面安装MySQL shell
  12. 进行桌面共享软件开发的市场前景如何
  13. SSD1306驱动理解
  14. wingFTP实现访问共享目录
  15. 小程序创建搜索记录,获取搜索记录,删除搜索历史
  16. CSDN如何删除上传的资源
  17. 为什么现代物理学离不开量子论和相对论?
  18. 计算图片中矩形间的IOU
  19. 常用元数据标准/受控词表/本体词汇表/的命名空间前缀及IRI链接汇总
  20. java中的常见异常1 -- 新手上路,减速慢行

热门文章

  1. 常用几种消息摘要算法
  2. Spring-Mail发邮件
  3. python 爬取12306网站车次信息
  4. kbmmw 做REST 服务签名认证的一种方式
  5. 网络中立:YouTube联名上书
  6. 实训——基于 Logisim 的 RISC-V 处理器设计
  7. python中point什么意思_Python如何使用菲奥娜来确定这些多边形中的哪些点?,python,利用,fiona,判定,那些,point,在,polygon,内...
  8. python中append函数解析_python中append函数的用法
  9. java形参列表怎么理解_关于Java中形参与实参的理解
  10. 谷歌浏览器快捷键总结