PHPでのAES GOの相互作用、キーの長さの問題

今日、AES暗号化は調査の後、そこに行くには、暗号化されてきた問題であり、常にPHPの最後に復号化されない、でPHPの行くと同義的に使用され、最終的には、問題は、暗号化キーの長さによって引き起こされるこの単純なレコードを見つけ。

AESの行く、サードパーティのライブラリを使用してOpenSSLは、我々が直接サンプルコードを取得するので、急いでいるので、唯一のPHPと終わりが実際に、復号化することができない見つけるために、ドキュメントを参照してくださいに注意を払っていない、それは実際に文書で非常に明確に言いました、「キーの長さができ 16/24/32文字(128/192/256ビット)である」、 キーの長さは、それぞれわずか16、24及び32文字、AES-128、AES-192であり、またはAES-256および他のモデル。

あまりにも32のうち、長さを懸念していないので、私はPHPでんだけど、私はECBモードを使用していたので、そう実際には32ビットの文字の長さは、実際には16文字にカットされ、その後、私はまた設定するにはで行きます32の文字は右、ライン上のキーPHP設定されているキーの長さの半分に直接行かないで、ちょっと、あなたはキー設定がプロンプトあまり良いしない場合、貨物ピットPHPと言いました。

コードを行きます

func Encrypt(data map[string]interface{})  (s string) {
    src,_ :=json.Marshal(data)
    key := []byte("YzfNCQoF9P7tjwyZ")
    dst , err := openssl.AesECBEncrypt(src, key, openssl.PKCS7_PADDING)
    if err !=nil {
        fmt.Printf("encrypt error:%s" ,err)
    }
    fmt.Printf(SafeBase64Encode(base64.StdEncoding.EncodeToString(dst)) )
    return SafeBase64Encode(base64.StdEncoding.EncodeToString(dst))
}

PHPコード

public static function  encrypt($str, $key){
        $encryptStr =  openssl_encrypt($str, 'AES-128-ECB',$key,OPENSSL_RAW_DATA);
        return static::urlsafe_b64encode($encryptStr);
    }

概要:PHPとAESのgolangは、次のキーの長さにもっと注意を払います

おすすめ

転載: www.cnblogs.com/smartrui/p/12020144.html