侧边栏壁纸
博主头像
七哥的技术博客

You got a dream, you gotta to protect it!

  • 累计撰写 60 篇文章
  • 累计创建 71 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

RC4算法实现原理

admin
2024-12-29 / 0 评论 / 0 点赞 / 9 阅读 / 0 字

参考视频 https://www.bilibili.com/video/BV1994y1o7tj/

密钥 k,如值为 012345

初始 s 表,长度256数组,各原始值依次为 0,1,…,255

空间 t 表,长度为256数组,值依次为密钥 k 的扩容256长度,值依次为 012345012345…

依据 t 表打乱 s 表的元素,打乱的规则如下

j := 0
for i :=0; i < 256; i++ {
    j = j + s[i] + t[i]  //计算待置换的 j 位置
    s[i], s[j] = s[j], s[i]
}

得到打乱后的 s 表后,计算密钥流,buff为待加密或解密的缓冲

var i, j int = 0, 0 
for h:=0 ; h<len(buff); h++ {
    i = (i+1) % 256 
    j = (j + s[i]) % 256 //这里256为s表的固定长度
    s[i], s[j] = s[j], s[i] //s[i] 和 s[j] 值互换
    t = (s[i] + s[j]) % 256
    n = s[t]
    buff[h] ^= n  // 这里的 n 为密钥流,依次计算一个字节,所有值和buff换成等长
}

rc4算法目前已经不再安全https://www.rfc-editor.org/rfc/rfc7465

网上已经有破解rc4的视频演示 https://www.youtube.com/watch?v=d8MtmKrXlKQ

0

评论区