Я потратил несколько недель на разработку двух алгоритмов шифрования, и нет, я не использую его для шифрования любых конфиденциальных данных, я просто хочу знать, насколько безопасны эти алгоритмы, если они будут использоваться. (Пожалуйста, посмотрите на код, прежде чем сказать, что пользовательское шифрование небезопасно)

Алгоритм шифрования один:

import random
def encrypt(plainText, password):
  plaintextList = []
  passwordSeed = ''
  key = 0
  encryptedText = ''
  count = 0
  for i in plainText:
    plaintextList.insert(count, str(ord(i)))
    count += 1
  for i in password:
    passwordSeed += str(ord(i))
  for i in range(10000):
    random.seed(int(passwordSeed) + (i*1000))
    key += random.randint(-1000000000, 1000000000)
  for i in plaintextList:
    encryptedText += str(int(i)*abs(key)) + '.'
  return encryptedText


def decrypt(hashText, password):
  splitHashText = []
  passwordSeed = ''
  key = 0
  decryptedText = ''
  splitHashText = hashText.split('.')
  for i in password:
    passwordSeed += str(ord(i))
  for i in range(10000):
    random.seed(int(passwordSeed) + (i*1000))
    key += random.randint(-1000000000, 1000000000)
  for i in splitHashText:
    if i.isdigit():
      decryptedText += chr(int(int(i)/abs(key)))
  return decryptedText

while 1 == 1:
  if input('Type e then enter to encrypt and d then enter to decrypt: ') == 'e':
    print(encrypt(input('Encrypt: '),input('Password: ')))
  else:
    print(decrypt(input('Decrypt: '),input('Password: ')))

Второй алгоритм шифрования:

def encrypt(plainText):
  plainList = []
  count = 0
  total = 0
  key = ''
  for i in plainText:
    plainList.insert(count,ord(i))
    total += int(ord(i))
    count += 1
  for i in plainList:
    key += str(i/total) + ';'
  return total, key
def decrypt(hashedText, key):
  keys = key.split(';')
  letters = []
  count = 0
  for i in keys:
    if i != '':
      letters.insert(count, chr(int(float(hashedText)*float(i))))
    count += 1
  return ''.join(letters)
while 1 == 1:
  if input('Type e to encrypt and d to decrypt: ') == 'e':
    data = encrypt(input('String to encrypt: '))
    print('Hashed text: '+ str(data[0]) + '   Key: ' + str(data[1]))
  else:
    print(decrypt(input("Hash: "), input("Key: ")))

Код можно запустить в любой Python IDE, если вы хотите его протестировать. Если это шифрование безопасное, не стесняйтесь использовать код.

0
Amazing Games