如何提取和配对密钥的位?

时间:2017-03-27 09:11:54

标签: matlab encryption input passwords grouping

function k = q43042300

key=input('Enter the key','s');
keyarr=dec2bin(key,8)

temp=1;
v=char(zeros(1,16*8));
for i=1 :16
  for j=1:8
    v(temp)=keyarr(i,j);
    temp=temp+1;
  end
end
temp=1;

for i=1:16:128
  k(temp)=v(i:i+15) % Error: Subscripted assignment dimension mismatch.
  temp=temp+1
end

我想获得像'abcdefghijklmnop'这样的密钥作为输入,然后我想将字符转换为二进制数字(这样我得到128位)。 然后我想将每个连续的16位配对成一个字段,但这会产生错误。

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的请求(即将提供的密钥转换为8组16位二进制数字),这就是您尝试做的事情:

k = reshape(dec2bin(input('Enter the key: ','s'),8).',16,[]).';

你不需要循环,只需要重塑一些。