- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python基于DES算法加密解密实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例讲述了Python基于DES算法加密解密实现方法。分享给大家供大家参考。具体实现方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
|
#coding=utf-8
from
functools
import
partial
import
base64
class
DES(
object
):
"""
DES加密算法
interface: input_key(s, base=10), encode(s), decode(s)
"""
__ip
=
[
58
,
50
,
42
,
34
,
26
,
18
,
10
,
2
,
60
,
52
,
44
,
36
,
28
,
20
,
12
,
4
,
62
,
54
,
46
,
38
,
30
,
22
,
14
,
6
,
64
,
56
,
48
,
40
,
32
,
24
,
16
,
8
,
57
,
49
,
41
,
33
,
25
,
17
,
9
,
1
,
59
,
51
,
43
,
35
,
27
,
19
,
11
,
3
,
61
,
53
,
45
,
37
,
29
,
21
,
13
,
5
,
63
,
55
,
47
,
39
,
31
,
23
,
15
,
7
,
]
__ip1
=
[
40
,
8
,
48
,
16
,
56
,
24
,
64
,
32
,
39
,
7
,
47
,
15
,
55
,
23
,
63
,
31
,
38
,
6
,
46
,
14
,
54
,
22
,
62
,
30
,
37
,
5
,
45
,
13
,
53
,
21
,
61
,
29
,
36
,
4
,
44
,
12
,
52
,
20
,
60
,
28
,
35
,
3
,
43
,
11
,
51
,
19
,
59
,
27
,
34
,
2
,
42
,
10
,
50
,
18
,
58
,
26
,
33
,
1
,
41
,
9
,
49
,
17
,
57
,
25
,
]
__e
=
[
32
,
1
,
2
,
3
,
4
,
5
,
4
,
5
,
6
,
7
,
8
,
9
,
8
,
9
,
10
,
11
,
12
,
13
,
12
,
13
,
14
,
15
,
16
,
17
,
16
,
17
,
18
,
19
,
20
,
21
,
20
,
21
,
22
,
23
,
24
,
25
,
24
,
25
,
26
,
27
,
28
,
29
,
28
,
29
,
30
,
31
,
32
,
1
,
]
__p
=
[
16
,
7
,
20
,
21
,
29
,
12
,
28
,
17
,
1
,
15
,
23
,
26
,
5
,
18
,
31
,
10
,
2
,
8
,
24
,
14
,
32
,
27
,
3
,
9
,
19
,
13
,
30
,
6
,
22
,
11
,
4
,
25
,
]
__s
=
[
[
0xe
,
0x4
,
0xd
,
0x1
,
0x2
,
0xf
,
0xb
,
0x8
,
0x3
,
0xa
,
0x6
,
0xc
,
0x5
,
0x9
,
0x0
,
0x7
,
0x0
,
0xf
,
0x7
,
0x4
,
0xe
,
0x2
,
0xd
,
0x1
,
0xa
,
0x6
,
0xc
,
0xb
,
0x9
,
0x5
,
0x3
,
0x8
,
0x4
,
0x1
,
0xe
,
0x8
,
0xd
,
0x6
,
0x2
,
0xb
,
0xf
,
0xc
,
0x9
,
0x7
,
0x3
,
0xa
,
0x5
,
0x0
,
0xf
,
0xc
,
0x8
,
0x2
,
0x4
,
0x9
,
0x1
,
0x7
,
0x5
,
0xb
,
0x3
,
0xe
,
0xa
,
0x0
,
0x6
,
0xd
,
],
[
0xf
,
0x1
,
0x8
,
0xe
,
0x6
,
0xb
,
0x3
,
0x4
,
0x9
,
0x7
,
0x2
,
0xd
,
0xc
,
0x0
,
0x5
,
0xa
,
0x3
,
0xd
,
0x4
,
0x7
,
0xf
,
0x2
,
0x8
,
0xe
,
0xc
,
0x0
,
0x1
,
0xa
,
0x6
,
0x9
,
0xb
,
0x5
,
0x0
,
0xe
,
0x7
,
0xb
,
0xa
,
0x4
,
0xd
,
0x1
,
0x5
,
0x8
,
0xc
,
0x6
,
0x9
,
0x3
,
0x2
,
0xf
,
0xd
,
0x8
,
0xa
,
0x1
,
0x3
,
0xf
,
0x4
,
0x2
,
0xb
,
0x6
,
0x7
,
0xc
,
0x0
,
0x5
,
0xe
,
0x9
,
],
[
0xa
,
0x0
,
0x9
,
0xe
,
0x6
,
0x3
,
0xf
,
0x5
,
0x1
,
0xd
,
0xc
,
0x7
,
0xb
,
0x4
,
0x2
,
0x8
,
0xd
,
0x7
,
0x0
,
0x9
,
0x3
,
0x4
,
0x6
,
0xa
,
0x2
,
0x8
,
0x5
,
0xe
,
0xc
,
0xb
,
0xf
,
0x1
,
0xd
,
0x6
,
0x4
,
0x9
,
0x8
,
0xf
,
0x3
,
0x0
,
0xb
,
0x1
,
0x2
,
0xc
,
0x5
,
0xa
,
0xe
,
0x7
,
0x1
,
0xa
,
0xd
,
0x0
,
0x6
,
0x9
,
0x8
,
0x7
,
0x4
,
0xf
,
0xe
,
0x3
,
0xb
,
0x5
,
0x2
,
0xc
,
],
[
0x7
,
0xd
,
0xe
,
0x3
,
0x0
,
0x6
,
0x9
,
0xa
,
0x1
,
0x2
,
0x8
,
0x5
,
0xb
,
0xc
,
0x4
,
0xf
,
0xd
,
0x8
,
0xb
,
0x5
,
0x6
,
0xf
,
0x0
,
0x3
,
0x4
,
0x7
,
0x2
,
0xc
,
0x1
,
0xa
,
0xe
,
0x9
,
0xa
,
0x6
,
0x9
,
0x0
,
0xc
,
0xb
,
0x7
,
0xd
,
0xf
,
0x1
,
0x3
,
0xe
,
0x5
,
0x2
,
0x8
,
0x4
,
0x3
,
0xf
,
0x0
,
0x6
,
0xa
,
0x1
,
0xd
,
0x8
,
0x9
,
0x4
,
0x5
,
0xb
,
0xc
,
0x7
,
0x2
,
0xe
,
],
[
0x2
,
0xc
,
0x4
,
0x1
,
0x7
,
0xa
,
0xb
,
0x6
,
0x8
,
0x5
,
0x3
,
0xf
,
0xd
,
0x0
,
0xe
,
0x9
,
0xe
,
0xb
,
0x2
,
0xc
,
0x4
,
0x7
,
0xd
,
0x1
,
0x5
,
0x0
,
0xf
,
0xa
,
0x3
,
0x9
,
0x8
,
0x6
,
0x4
,
0x2
,
0x1
,
0xb
,
0xa
,
0xd
,
0x7
,
0x8
,
0xf
,
0x9
,
0xc
,
0x5
,
0x6
,
0x3
,
0x0
,
0xe
,
0xb
,
0x8
,
0xc
,
0x7
,
0x1
,
0xe
,
0x2
,
0xd
,
0x6
,
0xf
,
0x0
,
0x9
,
0xa
,
0x4
,
0x5
,
0x3
,
],
[
0xc
,
0x1
,
0xa
,
0xf
,
0x9
,
0x2
,
0x6
,
0x8
,
0x0
,
0xd
,
0x3
,
0x4
,
0xe
,
0x7
,
0x5
,
0xb
,
0xa
,
0xf
,
0x4
,
0x2
,
0x7
,
0xc
,
0x9
,
0x5
,
0x6
,
0x1
,
0xd
,
0xe
,
0x0
,
0xb
,
0x3
,
0x8
,
0x9
,
0xe
,
0xf
,
0x5
,
0x2
,
0x8
,
0xc
,
0x3
,
0x7
,
0x0
,
0x4
,
0xa
,
0x1
,
0xd
,
0xb
,
0x6
,
0x4
,
0x3
,
0x2
,
0xc
,
0x9
,
0x5
,
0xf
,
0xa
,
0xb
,
0xe
,
0x1
,
0x7
,
0x6
,
0x0
,
0x8
,
0xd
,
],
[
0x4
,
0xb
,
0x2
,
0xe
,
0xf
,
0x0
,
0x8
,
0xd
,
0x3
,
0xc
,
0x9
,
0x7
,
0x5
,
0xa
,
0x6
,
0x1
,
0xd
,
0x0
,
0xb
,
0x7
,
0x4
,
0x9
,
0x1
,
0xa
,
0xe
,
0x3
,
0x5
,
0xc
,
0x2
,
0xf
,
0x8
,
0x6
,
0x1
,
0x4
,
0xb
,
0xd
,
0xc
,
0x3
,
0x7
,
0xe
,
0xa
,
0xf
,
0x6
,
0x8
,
0x0
,
0x5
,
0x9
,
0x2
,
0x6
,
0xb
,
0xd
,
0x8
,
0x1
,
0x4
,
0xa
,
0x7
,
0x9
,
0x5
,
0x0
,
0xf
,
0xe
,
0x2
,
0x3
,
0xc
,
],
[
0xd
,
0x2
,
0x8
,
0x4
,
0x6
,
0xf
,
0xb
,
0x1
,
0xa
,
0x9
,
0x3
,
0xe
,
0x5
,
0x0
,
0xc
,
0x7
,
0x1
,
0xf
,
0xd
,
0x8
,
0xa
,
0x3
,
0x7
,
0x4
,
0xc
,
0x5
,
0x6
,
0xb
,
0x0
,
0xe
,
0x9
,
0x2
,
0x7
,
0xb
,
0x4
,
0x1
,
0x9
,
0xc
,
0xe
,
0x2
,
0x0
,
0x6
,
0xa
,
0xd
,
0xf
,
0x3
,
0x5
,
0x8
,
0x2
,
0x1
,
0xe
,
0x7
,
0x4
,
0xa
,
0x8
,
0xd
,
0xf
,
0xc
,
0x9
,
0x0
,
0x3
,
0x5
,
0x6
,
0xb
,
],
]
__k1
=
[
57
,
49
,
41
,
33
,
25
,
17
,
9
,
1
,
58
,
50
,
42
,
34
,
26
,
18
,
10
,
2
,
59
,
51
,
43
,
35
,
27
,
19
,
11
,
3
,
60
,
52
,
44
,
36
,
63
,
55
,
47
,
39
,
31
,
23
,
15
,
7
,
62
,
54
,
46
,
38
,
30
,
22
,
14
,
6
,
61
,
53
,
45
,
37
,
29
,
21
,
13
,
5
,
28
,
20
,
12
,
4
,
]
__k2
=
[
14
,
17
,
11
,
24
,
1
,
5
,
3
,
28
,
15
,
6
,
21
,
10
,
23
,
19
,
12
,
4
,
26
,
8
,
16
,
7
,
27
,
20
,
13
,
2
,
41
,
52
,
31
,
37
,
47
,
55
,
30
,
40
,
51
,
45
,
33
,
48
,
44
,
49
,
39
,
56
,
34
,
53
,
46
,
42
,
50
,
36
,
29
,
32
,
]
__k0
=
[
1
,
1
,
2
,
2
,
2
,
2
,
2
,
2
,
1
,
2
,
2
,
2
,
2
,
2
,
2
,
1
,
]
__hex_bin
=
{
'0'
:
'0000'
,
'1'
:
'0001'
,
'2'
:
'0010'
,
'3'
:
'0011'
,
'4'
:
'0100'
,
'5'
:
'0101'
,
'6'
:
'0110'
,
'7'
:
'0111'
,
'8'
:
'1000'
,
'9'
:
'1001'
,
'a'
:
'1010'
,
'b'
:
'1011'
,
'c'
:
'1100'
,
'd'
:
'1101'
,
'e'
:
'1110'
,
'f'
:
'1111'
,
' '
:
'0000'
}
__re
=
lambda
t, s: ''.join(s[i
-
1
]
for
i
in
t)
__IP
=
partial(__re, __ip)
__IP1
=
partial(__re, __ip1)
__E
=
partial(__re, __e)
__P
=
partial(__re, __p)
__K1
=
partial(__re, __k1)
__K2
=
partial(__re, __k2)
__B
=
partial(
lambda
hex_bin, s: ''.join(hex_bin[w]
for
w
in
'
'.join('
%
2x
'
%
ord
(w)
for
w
in
s))
, __hex_bin)
__DB
=
partial(
lambda
s: ''.join(
chr
(
int
(s[i:i
+
8
],
2
))
for
i
in
range
(
0
,
len
(s),
8
)))
__S
=
partial(
lambda
hex_bin, __s, s: '
'.join(hex_bin['
%
x'
%
__s[i][
int
(s[i
*
6
]
+
s[i
*
6
+
5
],
2
)
*
16
+
int
(s[i
*
6
+
1
:i
*
6
+
5
],
2
)]]
for
i
in
range
(
8
))
, __hex_bin, __s)
__F
=
partial(
lambda
s, k: '
'.join('
0
' if s[i]==k[i] else '
1
'
for
i
in
range
(
len
(s))))
__K0
=
partial(
lambda
k0, K2, k:
map
(K2,
(k[k0[i]:
28
]
+
k[
0
:k0[i]]
+
k[k0[i]
+
28
:
56
]
+
k[
28
:k0[i]
+
28
]
for
i
in
range
(
16
)))
, __k0, __K2)
__K
=
partial(
lambda
K1, K0, k: K0(K1(k))
, __K1, __K0)
def
__init__(
self
):
pass
def
input_key(
self
, key, base
=
10
):
if
base
=
=
2
:
pass
elif
base
=
=
16
:
key
=
''.join(
self
.__class__.__hex_bin[w]
for
w
in
key)
else
:
key
=
self
.__class__.__B(key)
self
.__k
=
self
.__class__.__K(key)
def
__code(
self
, s, k):
s
=
self
.__IP(s)
l, r
=
s[
0
:
32
], s[
32
:
64
]
for
i
in
range
(
16
):
r_t
=
r
r
=
self
.__E(r)
r
=
self
.__F(r, k[i])
r
=
self
.__S(r)
r
=
self
.__P(r)
r
=
self
.__F(r, l)
l
=
r_t
return
self
.__class__.__IP1(r
+
l)
def
encode(
self
, s):
a
=
''
s
+
=
' '
*
((
8
-
len
(s)
%
8
)
%
8
)
for
i
in
range
(
0
,
len
(s),
8
):
before
=
self
.__class__.__B(s[i:i
+
8
])
after
=
self
.__code(before,
self
.__k)
a
+
=
'%16x'
%
int
(after,
2
)
return
'
'.join(w if w!='
' else '
0
'
for
w
in
a)
def
decode(
self
, s):
a
=
''
s.lower()
for
i
in
range
(
0
,
len
(s),
16
):
before
=
''.join(
self
.__class__.__hex_bin[s[j]]
for
j
in
range
(i, i
+
16
))
after
=
self
.__code(before,
self
.__k[::
-
1
])
a
+
=
self
.__class__.__DB(after)
return
a.rstrip().decode(
'utf-8'
)
if
__name__
=
=
'__main__'
:
d
=
DES()
d.input_key(
'123456789'
)
s
=
'再来一段中文'
a
=
d.encode(s)
print
a
b
=
d.decode(a)
print
b
|
希望本文所述对大家的Python程序设计有所帮助.
最后此篇关于Python基于DES算法加密解密实例的文章就讲到这里了,如果你想了解更多关于Python基于DES算法加密解密实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有一个 C# 应用程序调用 Java 网络服务来验证用户密码。我想让 C# 应用程序加密密码,然后让 Java Web 服务解密密码。我已经完成了 Java 端的代码(解密代码),但我无法找出 C#
我正在使用以下代码在使用 openssl 的 Windows 中使用 C 加密和解密二进制数据。如您所见,在这两个函数中,我都知道纯文本的大小。有什么方法可以在不知道纯文本大小的情况下解密消息? #i
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我有一个非常恼人的问题,Java中使用RSA算法对字符串进行不可靠的加密和解密。它似乎只能在大约 35% 的时间内工作,而且我不明白为什么它有时能工作,有时却不能。这是我写的一些测试代码,试图验证加密
我已经设法编写了用于文件加密/解密的函数。但它非常慢,尤其是随着文件大小的增加。例如几MB长的音频/视频文件 我几乎浏览了所有帖子来改进它,并尝试更改算法。如果有任何更改可以帮助我提高性能,请帮助我。
我正在尝试让我的转置密码发挥作用。 每当我将加密方法得到的密文输入解密方法时,我应该得到原始的明文......但事实并非如此...... 我做错了什么? 感谢您的帮助! public String E
我正在使用密码来加密和解密消息: public String encrypt(String string) throws InvalidKeyException, IllegalBlockSizeEx
我有一个在 MySQL 中存储数据的 spring-mvc 堆栈。其中一些数据需要保护,所以我想我应该加密它。由于我以后可能需要使用这些数据(信用卡、SSN 等),所以我需要对其进行解密。我认为这排除
作为一名SEOER,都想了解百度算法,通过算法原理来找到捷径的优化方案,那么今天我把研究多年的百度算法原理解密给大家,可能不是最好的,但是我可以给大家保证,这些都是非常实际的。希望给SEOER带来一
我试图找到一种技术来加密和解密程序中的文件,而无需将密码硬编码到程序中,也无需向用户询问密码。 如果我也可以从我正在编写的另一个程序中解密文件,那就太好了。 到目前为止,我还没有多少运气找到一种看起来
有没有一种方法可以使用作为字符串参数传递给程序的私钥而不是使用存储在机器上的证书来解密 PowerShell 中的 RSA?欢迎任何帮助,我的代码如下。 Function Decrypt-Asymme
通过问题Is it possible to use the Grails Jasypt plugin outside the GORM layer for simple String encrypti
我需要解密/加密我的域类中的几列,并且正在寻找有关如何做的信息。我已经找到了jasypt加密插件,但不幸的是它似乎与Grails 2.4不兼容。 我可能可以将一些东西拼凑在一起,但是想要确保Im遵循最
我需要有关声音文件加密/解密的帮助。我想在存储这个声音文件时加密一个声音文件,并在播放这个文件时解密它。我阅读了有关 java 中的加密/解密以及 java 中可用于此的大量示例代码。但这些程序不适用
我很感兴趣是否可以使用 Excel Visual Basic 和某些加密服务提供程序进行字符串加密/解密。 我找到了一个演练 Encrypting and Decrypting Strings in
我们正在使用加密/解密和UIIMAGE。如果我们在不保存到iphone画廊的情况下进行加密和解密以及UIIMAge,则可以正常工作,但是,如果我们进行加密,保存到画廊,将(加密的图像)加载到应用程序中
我正在做一个像这样的简单程序: package rsaexample; import java.io.*; import java.math.BigInteger; import java.secur
我发现这段代码返回给定字符串的校验和。 public static String getChecksum(String md5) { int counter = 0; while (c
我在 Java SE 和 Android 项目上使用相同的代码。在 Java 和 Android 中运行的应用程序连接到相同的 MQTT 代理并交换消息。消息使用 AES 进行加密/解密。我对 Jav
我想在 openssl/libcrypto 中使用 RSA 加密/解密一个长文件(我知道 AES 更好,但这只是为了比较)。我将输入文件分成大小为 numBlocks = inputFileLengt
我是一名优秀的程序员,十分优秀!