Powershell Encypt и Python Decrypt - PullRequest
       17

Powershell Encypt и Python Decrypt

0 голосов
/ 02 апреля 2019

У меня есть база данных, которая удаляется, но хранит «секреты», и мне нужно иметь возможность зашифровать данные и сохранить их на машине с Windows, а затем расшифровать на машине с Linux.

У меня есть часть шифрования в PowerShell, однако я не знаю, правильно ли я подаю ключ шифрования и вектор инициализации в python, потому что он неправильно расшифровывается.

вот код powershell для чтения паролей в незашифрованном виде и их шифрования:

$key = New-Object Byte[] 32
[Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($key)

$AES = New-Object System.Security.Cryptography.AesManaged
$iv = $AES.IV
$key = $AES.Key

$iv | Out-File IV.key
$key | Out-File AES.key 

$raw = Get-Content -Path .\passwords.txt -Raw

foreach ($line in -split $raw) {
    $secure_pass = ConvertTo-SecureString -String $line -AsPlainText -Force
    $encrypted_pass = ConvertFrom-SecureString -SecureString $secure_pass -key $key 
    $encrypted_pass | Add-Content encrypted_passes.txt
}

и это код дешифрования в python:

rom Crypto import Random
from Crypto.Cipher import AES


key = open("AES.key","r")
iv = open("IV2.key","r")
password_file = open("encrypted_passes.txt","r")
iv_text = iv.read()
key_text = key.read()
iv_base = base64.b64encode(iv_text)
print "IV: " + iv_base[:16]
base_key = base64.b64encode(key_text)
aes = AES.new(base_key[:32], AES.MODE_CBC, iv_base[:16])
print len(iv_base)

for line in password_file:
        print line
        print "blah: " + aes.decrypt(line[:32])

Я бы хотел, чтобы python прочитал зашифрованный файл паролей и смог правильно его расшифровать.

...