第3157章:尸横遍野(5/9)
unpad(b);
returnb},blocksize:4});
varn=d.
cipherparams=l.
extend({init:function(a){this.
mixin(a)},tostring:function(a){return(a||this.
formatter).
stringify(this)}}),b=(p.
format={}).
openssl={stringify:function(a){varb=a.
ciphertext;
a=a.
salt;
return(a?
s.
create([1398893684,1701076831]).
concat(a).
concat(b):b).
tostring(r)},parse:function(a){a=r.
parse(a);
varb=a.
words;
if(1398893684==b[0]&&1701076831==b[1]){varc=s.
create(b.
slice(2,4));
b.
splice(0,4);
a.
sigbytes-=16}returnn.
create({ciphertext:a,salt:c})}},a=d.
serializablecipher=l.
extend({cfg:l.
extend({format:b}),encrypt:function(a,b,c,d){d=this.
cfg.
extend(d);
varl=a.
createencryptor(c,d);
b=l.
finalize(b);
l=l.
cfg;
returnn.
create({ciphertext:b,key:c,iv:l.
iv,algorithm:a,mode:l.
mode,padding:l.
padding,blocksize:a.
blocksize,formatter:d.
format})},decrypt:function(a,b,c,d){d=this.
cfg.
extend(d);
b=this.
_parse(b,d.
format);
returna.
createdecryptor(c,d).
finalize(b.
ciphertext)},_parse:function(a,b){return”
string”
==typeofa?
b.
parse(a,this):a}}),p=(p.
kdf={}).
openssl={execute:function(a,b,c,d){d||(d=s.
random(8));
a=w.
create({keysize:bc}).
compute(a,d);
c=s.
create(a.
words.
slice(b),4*c);
a.
sigbytes=4*b;
returnn.
create({key:a,iv:c,salt:d})}},c=d.
passwordbasedcipher=a.
extend({cfg:a.
cfg.
extend({kdf:p}),encrypt:function(b,c,d,l){l=this.
cfg.