2015-09-18 3 views
2

Я хотел бы знать, как преобразовать хеш md5 в большое целое число, чтобы я мог применить к нему оператор модуля.Преобразовать хеш md5 в bigint в R

Я создаю хэш с помощью digest библиотеки:

h <- digest("luca", algo="md5", ascii=TRUE, raw=TRUE) 
> h 
[1] 18 0e 41 2e 42 db 5a 8c 45 3c 8a 81 c5 90 4e 5b 

Теперь я хотел бы, чтобы преобразовать h к большому целому числу, и быть в состоянии применить оператор модуля (%%) к нему.

Как я могу это сделать?

ответ

2

Использование библиотеки Rmpfr , следующие работы:

# Get a hex string of the MD5 hash: 
h = digest("luca", algo="md5", ascii = TRUE, raw = FALSE) 
result = mpfr(h, base = 16) 
result 
# 1 'mpfr' number of precision 128 bits 
# [1] 31975486076668374554448903959384968795 

result %% 1024 
# 1 'mpfr' number of precision 128 bits 
# [1] 603 

Чтобы установить Rmpfr, нужно установить свою зависимость, библиотеку MPFR GNU. См. Комментарии для получения дополнительной информации.

+1

Он отлично работает! Большое спасибо! Для тех, у кого есть эмитент, который вам нужен Rmpfr, вам нужна библиотека libmpfr-dev. В такой системе Ubuntu вы можете установить его с помощью: Sudo APT-получить установку libmpfr-DEV , а затем установить Rmpfr в R с: install.packages ("Rmpfr") – lucacerone

+1

также, можно пропустить вставить шаг, запросив дайджест для создания строк: h <- digest ("luca", algo = "md5", ascii = TRUE, raw = FALSE) – lucacerone

+1

@lucacerone Cool. Поскольку оба являются ценными комментариями, я собираюсь помещать их непосредственно в ответ другим пользователям, чтобы увидеть их легче. –

Смежные вопросы