так она и так выглядит будто в хексе
Это серийный номер не преобразованный, его необходимо перевести в 16 представление В Джаве например, берется сертификат, берется серийный номер (в виде бигинта) и переводится в 16 представление cert.getSerialNumber().toString(16) Как это в го ланге сделать?
https://www.admfactory.com/convert-string-to-hex-in-golang/ оно?
Оно переводит в такой вид "613834393637333930326437643138303930303434326231623738636537303137653338306234633763" А 16 представление имеет же буквы еще Видимо я что-то путаю)
так я и говорю, что вашу строку можно интерпретировать как значение в хексе. может я чего-то не понимаю
а, видимо то, что я скинул выше переводит по байтам в хекс, а то, что нужно переводит по двум
var s = "a849673902d7d180900442b1b78ce7017e380b4c7c" i := new(big.Int) i.SetString(s, 16) fmt.Println(i) // 245951333340985013858543379292390618457635426094204 нет, не то 😄
а есть примеры чисел, которые переводились на джаве? я переписал то, что делает BigInteger в джаве на го и выходит то, что строковое представление десятичного big.int числа переводится в hex и тогда получится то же самое, но у вас на входе строка уже задана в hex'е https://stackoverflow.com/questions/12582850/x509-serial-number-using-java вот я реализовал то, что в первом ответе на го. я подозреваю, что ничего переводить не нужно, если число уже в хексе var s = "76292708057987193002565060032465481997" i := new(big.Int) i.SetString(s, 10) fmt.Println(hex.EncodeToString(i.Bytes()) // 396570ebd89f28204ec2a06b9848310d
Обсуждают сегодня