2017-09-24 83 views
1

我試圖從十六進制轉換爲base64但我喜歡base64Encode或base64_enc職能不轉換,我從這個網站https://conv.darkbyte.ru/獲取或本網站匹配得到轉換http://tomeko.net/online_tools/hex_to_base64.php?lang=enR變換十六進制爲base64

library(RCurl) 
library(jsonlite) 

hex_number="9d0a5a7d6771dd7fa321a48a820f93627657df 
3292548df1389533913a60328300a9cc80d982875a8d08bb7 
602c59935cacae88ea635ed8d3cea9ef57b1884cc" 

base64_enc(hex_number) 
#"OWQwYTVhN2Q2NzcxZGQ3ZmEzMjFhNDhhODIwZjkzNjI3NjU3ZGYKMzI5M 
#jU0OGRmMTM4OTUz\nMzkxM2E2MDMyODMwMGE5Y2M4MGQ5ODI4NzVhOGQwO 
#GJiNwo2MDJjNTk5MzVjYWNhZTg4ZWE2\nMzVlZDhkM2NlYTllZjU3YjE4ODRjYw==" 

base64Encode(hex_number) 
#"OWQwYTVhN2Q2NzcxZGQ3ZmEzMjFhNDhhODIwZjkzNjI3NjU3ZGYKMzI5M 
#jU0OGRmMTM4OTUzMzkxM2E2MDMyODMwMGE5Y2M4MGQ5ODI4NzVhOGQwOGJiNwo 
#2MDJjNTk5MzVjYWNhZTg4ZWE2MzVlZDhkM2NlYTllZjU3YjE4ODRjYw==" 

#desired result: 
#nQpafWdx3X+jIaSKgg+TYnZX3zKSVI3xOJUzkTpgMoMAqcyA2YKHWo0Iu3YCxZk1ysrojqY17Y086p71exiEzA== 

此外,我已經嘗試將十六進制轉換爲文本,然後將其更改爲十六進制,並使用此頁面中的代碼。http://blog.entropic-data.com/2017/04/19/short-dealing-with-embedded-nul-in-string-manipulation-with-r/我沒有得到我想要的結果。

回答

2

wkb包借一些代碼(或只是直接安裝並使用它)它傳遞到基座64的轉換例程中的一個之前,將十六進制字符串轉換成原始向量:

hex_number <- "9d0a5a7d6771dd7fa321a48a820f93627657df3292548df1389533913a60328300a9cc80d982875a8d08bb7602c59935cacae88ea635ed8d3cea9ef57b1884cc" 

I」 m「source -ing」這個,但是如果你打算使用它的話,你應該在本地複製代碼,因爲GH可能會關閉或代碼可能改變。

source_url("https://raw.githubusercontent.com/ianmcook/wkb/master/R/hex2raw.R", 
      sha1 = "4443c72fb3831e002359ad564f1f2a8ec5e45e0c") 

openssl::base64_encode(hex2raw(hex_number)) 
## [1] "nQpafWdx3X+jIaSKgg+TYnZX3zKSVI3xOJUzkTpgMoMAqcyA2YKHWo0Iu3YCxZk1ysrojqY17Y086p71exiEzA==" 

OR(如果你願意有wkb包作爲依賴性:

openssl::base64_encode(wkb::hex2raw(hex_number))