Я хочу шифровать числовые значения.
Например;
Значение является числовым.
String ="8502352664";
Я хочу зашифровать его буквенно-цифровым + числовым. однако мне нужен вывод только с 5 символами.
8502352664>AB123
AB123
- пример вывода.
Может ли кто-нибудь дать мне примеры для шифрования?
Спасибо.
Я могу думать о чем-то подобном.
Если у вас есть строка, вы можете преобразовать ее в это: 11233378 → B1A2C3A7A8
A для одного, B для двойного, C для триплекса.
Или вы могли бы Цезарь Чиффре сделать это, переместите свою строку по значению n. 11233378 → 22344489
.
Просто некоторые идеи..
Вот список символов, которые я нашел на http://www.w3schools.com/tags/ref_urlencode.asp, и я беру первые 100 символов. Чтобы преобразовать строку длиной 10 (основание 10) в половину ее длины, вам понадобится база 100. Посмотрите на приведенный ниже список, разделите строку "8502352664" на | 85 | 02 | 35 | 26 | 64 | и замените их на аналог слева.
Например, если я получил 203
, он получит меня |02|03|
→ !"
space %20 - #01
! %21 - #02
" %22 - #03
# %23 - #04
$ %24 - #05
% %25 - and so on....
& %26
' %27
( %28
) %29
* %2A
+ %2B
, %2C
- %2D
. %2E
/ %2F
0 %30
1 %31
2 %32
3 %33
4 %34
5 %35
6 %36
7 %37
8 %38
9 %39
: %3A
; %3B
< %3C
= %3D
> %3E
? %3F
@ %40
A %41
B %42
C %43
D %44
E %45
F %46
G %47
H %48
I %49
J %4A
K %4B
L %4C
M %4D
N %4E
O %4F
P %50
Q %51
R %52
S %53
T %54
U %55
V %56
W %57
X %58
Y %59
Z %5A
[ %5B
\ %5C
] %5D
^ %5E
_ %5F
' %60
a %61
b %62
c %63
d %64
e %65
f %66
g %67
h %68
i %69
j %6A
k %6B
l %6C
m %6D
n %6E
o %6F
p %70
q %71
r %72
s %73
t %74
u %75
v %76
w %77
x %78
y %79
z %7A
{ %7B
| %7C
} %7D
~ %7E
%7F
' %80
%81
‚ %82
ƒ %83 - #100
также обратите внимание на% 7F и% 81, они оба пустого символа, я не уверен, что с ними обращаются одинаково, но для обеспечения безопасности вы можете выбрать любые символы, которые вам нравятся, а не в этом списке и заменить их.
Большинство современных криптографических хеш-функций не вписываются в 5 * 8 бит, поэтому для их представления потребуется более 5 символов.
Если вы готовы пойти на компромисс в области безопасности, хотя вы можете использовать что-то вроде Javas hashCode для String, а затем преобразовать его в символы.
Код будет выглядеть примерно так:
public String createHash(String s) throws UnsupportedEncodingException {
int hashcode = s.hashCode();
byte[] bytes = BigInteger.valueOf(hashcode).toByteArray();
return new String(bytes, "UTF-8");
}