本文整理汇总了Python中Crypto.Random.random.randint方法的典型用法代码示例。如果您正苦于以下问题:Python random.randint方法的具体用法?Python random.randint怎么用?Python random.randint使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Crypto.Random.random
的用法示例。
在下文中一共展示了random.randint方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: rsa_d
# 需要导入模块: from Crypto.Random import random [as 别名]
# 或者: from Crypto.Random.random import randint [as 别名]
def rsa_d(rsa, d):
"""
Factor RSA Public Key using Private Exponent.
Args:
rsa : instance of RSA
d : Private Exponent
Return:
p : Prime 1 (bigger than `q`)
q : Prime 2 (smaller than `p`)
"""
k = rsa.e * d - 1
g = 0
x = 0
while True:
g = random.randint(2, rsa.n - 1)
t = k
while t % 2 == 0:
t = t // 2
x = pow(g, t, rsa.n)
y = gcd(x - 1, rsa.n)
if x > 1 and y > 1:
p = y
q = rsa.n // y
return (max(p, q), min(p, q))
示例2: __init__
# 需要导入模块: from Crypto.Random import random [as 别名]
# 或者: from Crypto.Random.random import randint [as 别名]
def __init__(self, group=14, randInt=randint):
self.group = group
# I could use nested try statements
# or I could use isinstance with if-elif-else
# I chose the latter, if you disagree, submit an issue
if isinstance(group, int):
self.g = groups[group][0]
self.p = groups[group][1]
elif isinstance(group, (list,tuple)):
self.g = group[0]
self.p = group[1]
elif isinstance(group, dict):
self.g = group['g']
self.p = group['p']
else:
raise TypeError("{} is not an int, list, tuple, or dict"
.format(group))
self.a = randInt(1, self.p - 1)
self.public = pow(self.g, self.a, self.p) # g**a % p
self.key = 0
示例3: _generate_key
# 需要导入模块: from Crypto.Random import random [as 别名]
# 或者: from Crypto.Random.random import randint [as 别名]
def _generate_key():
"""
Generate private-public key pair.
For security reasons, either p should be a safe prime or g should have a
prime subgroup order. Otherwise it is vulnerable to Short Subgroup Attack.
:Parameters: _None_
:Variables:
g : int/long
Base point for modular exponentiation.
p : int/long
Modulus for modular exponentiation. Should be a safe prime.
x : int/long
Receiver's private key, should be kept secret.
h : int/long
Receiver's public key
q : int/long
Order of group generated by p and equals p-1
:Return: A tuple containing a Public Key object (class `PublicKey`) and
a Private Key object (class `PrivateKey`)
"""
# Assigning the largest 1024-bit safe prime as p
p = (1 << 1024) - 1093337
x = randint(2, p-2)
g = 7
q = p - 1
h = pow(g, x, p)
pubkey = PublicKey(h, p, g, q)
privkey = PrivateKey(x, p, g, q)
return (pubkey, privkey)
示例4: _encrypt
# 需要导入模块: from Crypto.Random import random [as 别名]
# 或者: from Crypto.Random.random import randint [as 别名]
def _encrypt(message, pubkey):
"""
Encrypt message using ElGamal encryption system
:Parameters:
message : str
plaintext to be encrypted
pubkey : instance of `PublicKey` class
Alice's public key parameters used for encryption
:Variables:
g : int/long
Base point for modular exponentiation.
p : int/long
Modulus for modular exponentiation. Should be a safe prime.
h : int/long
Receiver's public key
q : int/long
Order of group generated by p and equals p-1
y : int/long
Ephemeral key generated by the sender
c1, c2: int/long
Ciphertext pair
s : int/long
Shared secret
:Return:
A tuple containing ciphertext pair c1, c2
"""
h = pubkey.h
p = pubkey.p
g = pubkey.g
q = pubkey.q
m = bytes_to_long(message)
# Generating ephemeral key: `y`
y = randint(2, p-2)
c1 = pow(g, y, p)
# Computing the shared secret: `s`
s = pow(h, y, p)
c2 = (m*s) % p
return (c1, c2)
示例5: randomInt
# 需要导入模块: from Crypto.Random import random [as 别名]
# 或者: from Crypto.Random.random import randint [as 别名]
def randomInt(minimum, maximum):
""" Returns a random integer between or equald to minimum and maximum
"""
if minimum < 0: minimum = 0
if maximum < 0: maximum = 100
return random.randint(minimum, maximum)
#------------------------------------------------------------------------
示例6: transaction_id
# 需要导入模块: from Crypto.Random import random [as 别名]
# 或者: from Crypto.Random.random import randint [as 别名]
def transaction_id(self):
"""
Transaction ID for Transbank, a secure random int between 0 and 999999999.
"""
if not self._transaction_id:
self._transaction_id = random.randint(0, 10000000000 - 1)
return self._transaction_id