can someone help me in coding hash 512 algorithm?

1 vue (au cours des 30 derniers jours)
yogya
yogya le 9 Nov 2014
Commenté : Jan le 9 Nov 2014
hello i need a hash value that provide me as decimal value from 512 bits binary value. can someone please correct my code and help me. Where my code is
data = input('enter the data:','s');
pawrd = input('enter the password:','s');
bin = double(data);
display(bin);
n = dec2base(bin,16);
display(n);
len_n = length(n);
display(len_n);
k = dec2bin(bin,8);
display(k);
pwd = dec2bin(pawrd,8)';
pwd = pwd(:)'-'0';
ln_pwd = length(pwd);
disp(ln_pwd);
pad_pwd = [pwd , ones(1,64-ln_pwd)];
A = dec2bin(data,8)';
A = A(:)'-'0';
le_a = length(A);
pad2 = dec2bin(le_a,8)';
pad2 = pad2(:)'-'0';
j = length(pad2);
dap2 = [zeros(1,128-j), pad2];
display(pad2);
display(A);
display(le_a);
x = 896-le_a;
display(x);
if x == 0
display('seq need not to be padded');
else
padarray = [ones(1,1), zeros(1,x-1)];
paddedseq = [A, padarray];
finalpad = [paddedseq, dap2];
l_paddedseq = length(finalpad);
display(l_paddedseq);
display(paddedseq);
display(finalpad);
x1 = '6A09E667F3BCC908';
x2 = 'BB67AE8584CAA73B';
x3 = '3C6EF372FE94F82B';
x4 = 'A54FF53A5F1D36F1';
x5 = '510E527FADE682D1';
x6 = '9B05688C2B3E6C1F';
x7 = '1F83D9ABFB41BD6B';
x8 = '5BE0CD19137E2179';
bx1 = base2dec(x1,16);
bx2 = base2dec(x2,16);
bx3 = base2dec(x3,16);
bx4 = base2dec(x4,16);
bx5 = base2dec(x5,16);
bx6 = base2dec(x6,16);
bx7 = base2dec(x7,16);
bx8 = base2dec(x8,16);
a = dec2bin(bx1,64);
display(a);
b = dec2bin(bx2,64);
display(b);
c = dec2bin(bx3,64);
display(c);
d = dec2bin(bx4,64);
display(d);
e = dec2bin(bx5,64);
display(e);
f = dec2bin(bx6,64);
display(f);
g = dec2bin(bx7,64);
display(g);
h = dec2bin(bx8,64);
display(h);
end
w =reshape(finalpad,16,64);
display(w);
wi = w(i, 1:64);
disp(wi);
ki = circshift(pad_pwd,1);
disp(ki);
and1 = e&f;
and2 = (~e)&g;
and3 = a&b;
and4 = a&c;
and5 = b&c;
Ch = bitxor(and1,and2);
display(and1);
display(and2);
display(Ch);
Maj1 = bitxor(and3,and4);
display(Maj1);
maj = bitxor(Maj1,and5);
display(maj);
r1 = circshift(e,[0 +14])-'0' ;
disp(r1);
r2 = circshift(e,[0 +18])-'0';
disp(r2);
r3 = circshift(e,[0 +41])-'0';
r4 = circshift(a,[0 +28])-'0';
r5 = circshift(a,[0 +34])-'0';
r6 = circshift(a,[0 +39])-'0';
r12 = bitxor(r1,r2);
r45 = bitxor(r4,r5);
sum1e = bitxor(r12,r3);
sum0a = bitxor(r45,r6);
T1 = h|Ch|wi|ki|sum1e;
disp(T1);
T2 = maj|sum0a;
disp(T2);
h = g;
disp(h);
g = f;
disp(g);
f = e;
disp(f);
e = d|T1;
disp(e);
d = c;
disp(d);
c = b;
disp(c);
b = a;
disp(b);
a = T1|T2;
disp(a);
a=a(a~='0');
disp(a);
  1 commentaire
Jan
Jan le 9 Nov 2014
If you want a correction of your code, you have to mention, what you assume to be a bug. It is impossible to find a bug based on working code only.

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Chemistry dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by