- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python实现的rsa加密算法详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例讲述了Python实现的rsa加密算法。分享给大家供大家参考,具体如下:
算法过程 。
1. 随意选择两个大的质数p和q,p不等于q,计算N=pq。 2. 根据欧拉函数,不大于N且与N互质的整数個数為(p-1)(q-1)。 3. 选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1)。 4. 用以下这个公式计算d:d× e ≡ 1 (mod (p-1)(q-1))。 5. 将p和q的记录销毁.
(N,e)是公钥,(N,d)是私钥.
python代码 。
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
|
# -*- coding: utf-8 -*-
#!/usr/bin/env python
def
range_prime(start, end):
l
=
list
()
for
i
in
range
(start, end
+
1
):
flag
=
True
for
j
in
range
(
2
, i):
if
i
%
j
=
=
0
:
flag
=
False
break
if
flag:
l.append(i)
return
l
def
generate_keys(p, q):
#numbers = (11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47)
numbers
=
range_prime(
10
,
100
)
N
=
p
*
q
C
=
(p
-
1
)
*
(q
-
1
)
e
=
0
for
n
in
numbers:
if
n < C
and
C
%
n >
0
:
e
=
n
break
if
e
=
=
0
:
raise
StandardError(
"e not found"
)
#Python3中改为BaseException
d
=
0
for
n
in
range
(
2
, C):
if
(e
*
n)
%
C
=
=
1
:
d
=
n
break
if
d
=
=
0
:
raise
StandardError(
"d not found"
)
return
((N, e), (N, d))
def
encrypt(m, key):
C, x
=
key
return
(m
*
*
x)
%
C
decrypt
=
encrypt
if
__name__
=
=
'__main__'
:
pub, pri
=
generate_keys(
47
,
79
)
L
=
range
(
20
,
30
)
C
=
map
(
lambda
x: encrypt(x, pub), L)
D
=
map
(
lambda
x: decrypt(x, pri), C)
print
"我测试结果:"
print
"keys:"
, pub, pri
print
"message:"
, L
print
"encrypt:"
, C
print
"decrypt:"
, D
|
运行结果:
其实用什么语言实现这个过程都不是很麻烦,只是我们老师要求生成1024的随机数,用c语言写就有点恶心了,所以用python或者java实现要更加方便一点.
希望本文所述对大家Python程序设计有所帮助.
原文链接:http://blog.csdn.net/acingdreamer/article/details/53292815 。
最后此篇关于Python实现的rsa加密算法详解的文章就讲到这里了,如果你想了解更多关于Python实现的rsa加密算法详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试用 C 编写一个简单的加密程序。我的目标是将 abc(它可以是任何单词)翻译成 123。然后乘以 2 得到 246 然后再次翻译成文本,然后在屏幕上写 bdf。这是我的算法,它不能正常工作。
互联网上有很多关于加密的答案,但我一直无法找到我正在寻找的东西:使用 c# 提供的工具对字符串和文本文件进行加密的简单强加密。 我的主要问题是我不知道如何将 IV 保存到文本文件的开头或如何创建随机
C#“RSACryptoServiceProvider”加密算法是 Microsoft-CryptoAPI 的一部分吗? 通过在 .Net 中使用 CryptoAPI 而不是“RSACryptoSer
我正在编写适用于“流”的 XXTEA 加密算法的实现,即可以像这样使用:crypt mykey 输出。 其中一个先决条件是它根本无法访问文件(它只读取固定大小的 block ,直到找到 EOF)。该
嘿,这是我老师给我的一个加密例子。但是,我仍然搞不懂(Int)Message[i]是什么意思?那么程序在这条线上做什么呢?
嘿,这是我老师给我的一个加密例子。但是,我仍然搞不懂(Int)Message[i]是什么意思?那么程序在这条线上做什么呢?
嘿,我研究这个已经有一段时间了,我记得我的兄弟引导我完成了这个完全相同的算法。 基本上,它只是添加键中字符和短语的 ascii 值。 我可以用这个加密它: def encrypt(key, strin
我正在尝试将 BouncyCaSTLe 与 android 一起使用来实现 ECDH 和 EL Gamal。我已经添加了 bouncycaSTLe jar 文件 (bcprov-jdk16-144.j
我需要加密一个数字,我和这个加密的值将提供给客户询问 key ,所以我想尽量减少数字的数量并使它们都可以打印。 所以我希望结果要么全是数字,要么全是十六进制字符。 我正在使用的当前加密方法(对于非数字
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 5年前关闭。 Improve t
我正在制作 note taking web app它会在您键入时连续保存笔记。我正在发送差异以防止通过线路发送过多数据,这在注释为纯文本时工作正常。 然而,我添加了对加密笔记的支持,所以笔记只会以加密
我正在寻找一种与 JavaScript 和 Java 兼容的安全对称 key 加密算法。 我已经尝试实现一个,但我遇到了一些编码问题。 最佳答案 您不想使用 JavaScript 加密,especia
目录 1 MD5 1.1 算法定义 1.2 MD5算法不安全的原因 1.2.1 字典表很大 1
在查看一些旧的 Coldfusion 代码时,我发现了几个通过加密/解密函数使用 CFMX_COMPAT 算法加密的数据实例。 找了一阵子,一直没找到这是什么算法。文档提到它现在是最不安全的方法,但我
谁能告诉我 iOS 上 SUP 用来加密底层数据库的加密算法是什么? 它是否依赖于 SQLite EE(加密扩展),如果是,使用了 4 种可用算法中的哪一种? 我的猜测是某种 AES,但官方文档中没有
我一直有这个问题。 The specified cryptographic algorithm is not supported on this platform. Exception Details
我正在为一个项目实现 3Des 加密算法。 我使用此代码作为示例: http://www.java2s.com/Code/Java/Security/TripleDES.htm 它工作正常,但我需要发
我正在尝试使用 adobe type 1 字体加密算法来加密文本文件。但是,我不知道如何用汇编语言正确地实现算法。如果可以,请帮助我。 下面是adobe type 1字体加密算法: unsigned
如何添加/创建具有特定加密算法的 c/c++ OpenSSL 静态库?假设我不想实现 md5。如何创建没有 md5 的库? 最佳答案 在配置脚本中你可以指定no-选项,它会在没有你指定的密码的情况下构
我检查了 TripleDES。它的 block 大小是 64 位。 有没有针对8位 block 大小的算法? 谢谢 编辑:我不打算将其用于完美保护,而是用于以防万一的情况,即看到代码的人不应该找到明文
我是一名优秀的程序员,十分优秀!