Seems useful and I did not know about it. Strings in my case can be longer than 64 bits though but this is a useful building block. Thanks!
Den tisdagen den 11:e mars 2014 kl. 20:13:05 UTC+1 skrev Avik Sengupta: > > Does this work? > > julia> a="abcdefgh" > "abcdefgh" > > julia> reinterpret(Int64, a.data) > 1-element Array{Int64,1}: > 7523094288207667809 > > > > On Tuesday, 11 March 2014 16:07:35 UTC+5:30, Robert Feldt wrote: >> >> Implementing simple RSA crypto in pure Julia (not for actual >> sec-sensitive use) but for low-sec applications. But I have troubles with >> encoding strings as integers and back. The PKCS#1 crypto standard says that >> strings should be seen as 8-bit (octet) strings. I tried creating a Uint8[] >> with the byte values and converting to ASCIIString but that fails when the >> values are more than 7 bits. However, I cannot just convert to UTF8String >> instead since those might not be valid either. >> >> Ideas for how to do this cleanly? Current code below... Thanks! >> >> # Convert a non-negative integer i into an octet string. >> function i2osp(x::Integer, len = nothing) >> if typeof(len) <: Integer && (x >= 256^len) >> throw("integer is too large") >> end >> >> if x < 0 >> throw("integer is negative") >> end >> >> bytes = Uint8[] >> while x > 0 >> b = uint8(x & 0xff) >> push!(bytes, b) >> x = x >>> 8 >> end >> str = convert(ASCIIString, reverse(bytes)) # Fails if any byte value > >> 127 >> >> if typeof(len) <: Integer && (length(str) < len) >> str = repeat("\0", len - str) * str >> end >> >> return str >> end >> >>