Кодированный вывод Base64 отличается от библиотек шифрования as3crypto и pycrypto - PullRequest
0 голосов
/ 12 января 2011

Я пытаюсь использовать симметричное шифрование для передачи данных из actionscript 3 (клиент) на python (сервер).

Я использую библиотеки as3crypto и pycrypto, я не уверен, правильно ли я использую эти библиотеки.

Actionscript 3:

private function testOnInit():void {
  var t_toEnc:String = 'testtest';
  var t_byAry:ByteArray = Hex.toArray( Hex.fromString( t_toEnc ) );
  var t_key:ByteArray = Hex.toArray( Hex.fromString( 'Thisisthekey' ) );
  var t_cbc:CBCMode = new CBCMode( new BlowFishKey( t_key ), new NullPad );
  var t_enc:String;
  t_cbc.IV = Hex.toArray( '30313233' );
  t_cbc.encrypt( t_byAry );
  t_enc = Base64.encodeByteArray( t_byAry );      
  dbg( 'b64 encrypted string ' + t_enc ); //this is just a debugging function we use in our code.
}

Это кодированный в base64 выход функции выше.

xvVqLzV5TU4 =

Теперь, используя тот же ключ, вектор инициализации и алгоритм из библиотеки pycrypto, я получаю другой вывод.

Python:

from Crypto.Cipher import Blowfish
B = Blowfish.new( 'Thisisthekey', Blowfish.MODE_CBC, '30313233' )
S = 'testtest'
X = B.encrypt( S )
import base64
Y = base64.b64encode( X )
print Y

I82NQEkSHhE =

Я почти уверен, что что-то не так с процессом шифрования, потому что я могу base64 кодировать 'testtest' в обеих библиотеках и получать один и тот же вывод.

Actionscript 3:

var b:ByteArray = new ByteArray();
b.writeUTFBytes( 'testtest' );
dbg( Base64.encodeByteArray( b ) );

Урожайность ...

dGVzdHRlc3Q =

Python:

>>> T = 'testtest'
>>> print base64.b64encode( T )

Урожайность

dGVzdHRlc3Q =

Может кто-нибудь зашифровать и base64 закодировать ту же строку с тем же IV в Python или ActionScript, так что я знаю, какая библиотека на самом деле производит правильный вывод?

1 Ответ

0 голосов
/ 12 января 2011

Возможно, проблема в заполнении. ActionScript не использует отступы, но Py не показывает, какие отступы он использует. Так что это может быть причиной. Попробуйте другой отступ (PKCS # 5, например) с actioncript.

...