Example #1
0
def gen_pbkdf1(password, salt, iterations=10000):
  """Simple implementation of pbkdf1 using iterations of sha1
  
  """
  O = sha1(password + salt).digest()
  for _ in xrange(2, iterations + 1):
    O = sha1(O).digest()
  return O
Example #2
0
def gen_sha1(password, salt = "abcdefghijklmnopqrstuvwxyz", iterations=10000):
  """Python implementation for a slow password hash
  """
  h = sha1()
  h.update(password)
  h.update(salt)
  for x in range(iterations):
    h.update(h.digest())
  return h.hexdigest()
Example #3
0
def generate_p_q(L, N):
    g = N
    n = (L - 1) // g
    b = (L - 1) % g
    while True:

        while True:
            s = xmpz(randrange(1, 2**(g)))
            a = sha1(to_binary(s)).hexdigest()
            zz = xmpz((s + 1) % (2**g))
            z = sha1(to_binary(zz)).hexdigest()
            U = int(a, 16) ^ int(z, 16)
            mask = 2**(N - 1) + 1
            q = U | mask
            if is_prime(q, 20):
                break

        i = 0
        j = 2
        while i < 4096:
            V = []
            for k in range(n + 1):
                arg = xmpz((s + j + k) % (2**g))
                zzv = sha1(to_binary(arg)).hexdigest()
                V.append(int(zzv, 16))
            W = 0
            for qq in range(0, n):
                W += V[qq] * 2**(160 * qq)
            W += (V[n] % 2**b) * 2**(160 * n)
            X = W + 2**(L - 1)
            c = X % (2 * q)
            p = X - c + 1
            if p >= 2**(L - 1):
                if is_prime(p, 10):
                    return p, q
            i += 1
            j += n + 1
Example #4
0
def file_hash(filedata):
  return sha1(filedata).hexdigest()