java将数值加密为字母数字值

时间:2014-03-13 07:54:44

标签: java encryption hash hash-function

我想加密数值。

例如;

该值为数字。

String ="8502352664";

我想将其加密为字母数字+数字。但是我需要输出只有5个字符。

8502352664>AB123

AB123是输出示例。

有人可以给我任何加密示例吗?

谢谢。

3 个答案:

答案 0 :(得分:0)

我可以想到这样的事情。
如果您有一些String,可以将其转换为:11233378 -> B1A2C3A7A8
A为单,B为双,C为tripple。

或者你可以Caesar Chiffre这样做,按值n移动你的String。 11233378 -> 22344489

只是一些想法..

答案 1 :(得分:0)

大多数现代加密哈希函数不适合5 * 8位,因此需要超过5个字符才能显示它们。

如果您愿意在安全方面做出妥协,尽管您可以使用类似Javas hashCode for String的内容然后将其转换为字符。

代码看起来像这样

    public String createHash(String s) throws UnsupportedEncodingException {
    int hashcode = s.hashCode();
    byte[] bytes = BigInteger.valueOf(hashcode).toByteArray();

    return new String(bytes, "UTF-8");
}

答案 2 :(得分: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,它们都是空字符,我不确定它们是否被视为相同,但出于安全考虑,您可以选择您喜欢的任何符号,不在此列表中并替换它们。