Sujet : Re: base26 Encoder/Decoder
De : pollux (at) *nospam* tilde.club (Stefan Claas)
Groupes : sci.cryptDate : 28. Apr 2024, 14:45:19
Autres entêtes
Organisation : i2pn2 (i2pn.org)
Message-ID : <v0ljtg$2g491$1@i2pn2.org>
References : 1 2 3 4 5 6 7 8 9 10 11
Herbert Kleebauer wrote:
But how does your base26 coding work. Take you four bytes
of the input string and then convert this 32 bit number
to base26 resulting in a 7 digit base26 number? There
are 5 of this 4 byte chunks which gives a total of 35
base26 digits. But how do you handle padding if the
input string length is not a multiple of 4?
Or do you treat the complete string as a single number
0x48656c6c6f207363692e637279707421203a2d29 and convert
this 160 bit number to a single base26 number? This would
also result in a 35 digit base26 number, but would
require long number arithmetic and consume a lot of
computing power (suppose the input string is 1 MByte or
even 1 GByte). In this case you don't have a problem
with padding but with leading zeroes.
Sorry (I get a red face ...) The Rust code is derived
from the Python3 library without thinking to much about
the logic behind it, so I can't answer your questions
correctly!
For me it was sufficient that the code works, as expected
for small payloads, when comparing the output with the
Python3 library. The program is not intended for encoding
large (binary) payloads and only meant as a helper program
for the Diana Cryptosystem or Dein Star etc.
I am no programmer like you guys are but always appreciate
the comments! And I was in need for a binary program solution,
instead of using Python scripts, which I do not like.
But I still don't understand the advantage over base16.
If you only can use A-Z as transferable digits, you can
use an alternative to the standard hex encoding:
0 A or Q
1 B or R
2 C or S
3 D or T
4 E or U
5 F or V
6 G or W
7 H or X
8 I or Y
9 J or Z
10 K
11 L
12 M
13 N
14 O
15 P
Because there are two ways to encode 0-9, you
can use this to send a second data stream. If
A-J is used a 0 bit transferred and if Q-Z is used
a 1 bit is transferred on this second channel. You
can use this for example for a check sum or an
error correcting code.
Thank you for explaining!
-- RegardsStefan