@bsbak

Как правильно написать из PHP hex2bin и openssl_decode на Go?

Есть на php такая реализация:

<?php

    $token = 'c01d7c2768ba633990d458a78e0e4ce50627c20cffe54c8c';
    $key = 'j0klBHYlVQOkc1LCE6ECZwBf1Siyvt5l';
    $result = openssl_decrypt(hex2bin($token), 'BF-ECB', $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING);
    print_r($result);

    // результат: {"t":1,"u":"1341/957"}
    ?>


Можно попробовать на каком-то php fiddle phpfiddle.org/lite

Подскажите как это реализовать на Go? Пробовал вот так но, даже на hex2bin уже ошибка https://play.golang.org/p/gKiMMkT7CxR
  • Вопрос задан
  • 174 просмотра
Решения вопроса 1
@falconandy
package main

import (
	"encoding/hex"
	"fmt"

	"golang.org/x/crypto/blowfish"
)

func main() {
	encryptedText, _ := hex.DecodeString("c01d7c2768ba633990d458a78e0e4ce50627c20cffe54c8c")
	key := []byte("j0klBHYlVQOkc1LCE6ECZwBf1Siyvt5l")

	cipher, _ := blowfish.NewCipher(key)
	plainText := make([]byte, len(encryptedText))
	size := blowfish.BlockSize

	for bs, be := 0, size; bs < len(encryptedText); bs, be = bs+size, be+size {
		cipher.Decrypt(plainText[bs:be], encryptedText[bs:be])
	}
	fmt.Println(string(plainText))
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы