
前提・実現したいこと
PHPのopenssl_encrypt関数の bf-ecbモードで暗号化しているものと同じ暗号化をgolangで行いたいです。
##php
public function Encode($value) { $crypt = openssl_encrypt($value, "bf-ecb","sample key" , 1); $data = unpack('H*hex', $crypt); $encoded = $data['hex']; return $encoded; }
↑で暗号化しているものと同じことをgolangで行いたいです
public function Decode($value) { $data = pack('H*', $value); $decode = openssl_decrypt($data, "bf-ecb", "sample key", 1); return $decode; }
↑のDecode関数でgolangで作った暗号を復号することが目的です。
試したこと
golang
import ( "encoding/hex" "golang.org/x/crypto/blowfish" ) func main{ println(EncryptString("aiueo", "sample key")) } func EncryptString(target, keyStr string) (string) { plaintext := []byte(target) paddedplaintext := BlowfishChecksizeAndPad(plaintext) encryptedtext, _ := BlowfishEncrypt(paddedplaintext, []byte(keyStr)) return hex.EncodeToString(encryptedtext) } func BlowfishEncrypt(ppt, key []byte) ([]byte) { ecipher, _ := blowfish.NewCipher(key) encrypted := make([]byte, len(ppt)) ecipher.Encrypt(encrypted, ppt) return encrypted } func BlowfishChecksizeAndPad(pt []byte) []byte { modulus := len(pt) % blowfish.BlockSize if modulus != 0 { padlen := blowfish.BlockSize - modulus for i := 0; i < padlen; i++ { pt = append(pt, 0) } } return pt }
aiueo
を暗号化した結果
golangの暗号化の結果
edfb75440234af5e
phpでの暗号化の結果
b31ed925f529fa14
になっており、違う結果が帰って来てしまいます。
golangで暗号化した結果のedfb75440234af5e
をphpのDecodeで複合しようとしても結果が表示されません。
補足情報(FW/ツールのバージョンなど)
golang 1.11
php 7.3.4
よろしくお願いいたします。


回答1件
あなたの回答
tips
プレビュー