Base64编码输出与as3crypto和pycrypto加密库不同

我正在尝试使用对称加密将数据从actionscript 3(客户端)传递到python(服务器)。 我正在使用的库是as3crypto和pycrypto,我不确定我是否正确使用这些库。 动作脚本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库中的相同密钥,初始化向量和算法给出了不同的输出。 蟒蛇:
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'并接收相同的输出。 动作脚本3:
var b:ByteArray = new ByteArray();
b.writeUTFBytes( 'testtest' );
dbg( Base64.encodeByteArray( b ) );
产量...   dGVzdHRlc3Q = 蟒蛇:
>>> T = 'testtest'
>>> print base64.b64encode( T )
产量   dGVzdHRlc3Q = 有人可以使用python或actionscript中的相同IV加密和base64encode相同的字符串,所以我知道哪个库实际上产生了正确的输出?     
已邀请:
问题可能在于填充。 ActionScript不使用填充,但Py不显示它使用的填充。所以,这可能是原因。尝试使用actionscript进行另一次填充(例如PKCS#5)。     

要回复问题请先登录注册