rc4加密过程


密钥调度算法(KSA)(Key Scheduling Algorithm

  1. 初始化一个长度为256的数组S,值为S[i]=i,其中i是索引.

    s=list(range(256))

  2. 根据密钥(char类型)和S[i]生成j,S[j],并进行置换:

    初始化:j=0

    开循环:

    • j=j+S[i]+key[i%len(key)]%256

    • 交换S[i]和S[j]

伪随机数生成算法(PRGA)

  1. 初始化两个索引变量:i,j=0

  2. 以密文字节长度开循环:

    i = (i+1)%256s

    j = (j+s[i])%256

    交换S[i]和S[j]

    t = ( S[i]+S[j] )%256

    KEY = S[t]

    enc[h]^KEY