Java-шифрование числовых значений в буквенно-цифровые значения

1

Я хочу шифровать числовые значения.

Например;

Значение является числовым.

String ="8502352664";

Я хочу зашифровать его буквенно-цифровым + числовым. однако мне нужен вывод только с 5 символами.

8502352664>AB123

AB123 - пример вывода.

Может ли кто-нибудь дать мне примеры для шифрования?

Спасибо.

Теги:
encryption
hash
hash-function

3 ответа

0

Я могу думать о чем-то подобном.
Если у вас есть строка, вы можете преобразовать ее в это: 11233378 → B1A2C3A7A8
A для одного, B для двойного, C для триплекса.

Или вы могли бы Цезарь Чиффре сделать это, переместите свою строку по значению n. 11233378 → 22344489.

Просто некоторые идеи..

  • 0
    это все еще не уменьшает это к длине 5.
0

Вот список символов, которые я нашел на 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, они оба пустого символа, я не уверен, что с ними обращаются одинаково, но для обеспечения безопасности вы можете выбрать любые символы, которые вам нравятся, а не в этом списке и заменить их.

0

Большинство современных криптографических хеш-функций не вписываются в 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");
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню