Skip to main content

Python implementation of encryption/decryption for rclone (crypt storage)

Project description

rclone_crypt_py

English, 简体中文

Python implementation of encryption/decryption for rclone (crypt storage)

Usage

from rclone import Crypt
# Initialize
# Pass in passwd1 and passwd2

# The password here is the password for creating the crypt, not the password in the rclone configuration file
# If passwd2 is not set, the second parameter can be omitted
crypt = Crypt('PvrhK9lOaJMdJO2', 'bjnW66SNkUuV4hX')

# To use passwords directly in the rclone configuration file(obscured password), you should set the passwd_obscured parameter to True.
# crypt = Crypt('SpnX0yEFxpNJjo9bxd3xAlVoXA7F4cr3C0SA-zmfzw', 'ziWH7jKYerB6o5vHnaXAvISTguFD6ZFJFbhT3BlLVQ', True)

# File encryption/decryption
crypt.File.file_decrypt(input_file_path, output_file_path)
crypt.File.file_encrypt(input_file_path, output_file_path)

# File path encryption/decryption
# obfuscate
crypt.Name.obfuscate_encrypt('Hello,Word')
crypt.Name.obfuscate_decrypt('188.Nkrru,cuxj')

#standard
crypt.Name.standard_encrypt('Hello,Word/你好,世界')
crypt.Name.standard_decrypt('tj0ivgsmd9vh4ccfov7f739in0/lb8g1ak1849smj6mlmpv2c5aio')
from rclone import Crypt
crypt = Crypt('PvrhK9lOaJMdJO2', 'bjnW66SNkUuV4hX')

# bytes decryption
with open('test.bin', 'rb') as f:
    f.seek(8) # Skip the fixed file header b'RCLONE\x00\x00'
    init_nonce = f.read(24) # Read the nonce
    f.seek(5 * (1024 * 64 + 16), 1) # Skip 5 data blocks
    input_bytes = f.read(10 * (1024 * 64 + 16)) # Read 10 data blocks
    output_bytes = crypt.File.bytes_decrypt(input_bytes, init_nonce, 5) # Decrypt the data blocks

# bytes encryption
import nacl
with open('test.bin', 'wb') as f:
    f.write(b'RCLONE\x00\x00') # Write the standard header
    init_nonce = nacl.utils.random(24) # Generate a random nonce (24 bits)
    f.write(init_nonce) # Write the nonce
    with open('origin.bin', 'rb') as fl:
        origin_bytes = fl.read(1024 * 64 * 10) # Read 10 data blocks
        i = 0
        while origin_bytes:
            f.write(crypt.File.bytes_encrypt(origin_bytes, init_nonce, i))
            origin_bytes = fl.read(1024 * 64 * 10)
            i = i + 10

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rclone_crypt-1.1.3.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

rclone_crypt-1.1.3-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file rclone_crypt-1.1.3.tar.gz.

File metadata

  • Download URL: rclone_crypt-1.1.3.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for rclone_crypt-1.1.3.tar.gz
Algorithm Hash digest
SHA256 4f5a1b8d70d9df4fde6d1670138ea6c097dcc582af4d84cf510c4f4c935097cd
MD5 25b591f61383a813daa56ad5b4217e39
BLAKE2b-256 34176308bc3f4998c04ee93a2b2c569480c33e011aa374c931ec96b3db5e72fc

See more details on using hashes here.

File details

Details for the file rclone_crypt-1.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for rclone_crypt-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ee7e818140dca33bde3a7470dcc986499fc4a82522781d90e6b484f4f8cf34f0
MD5 8887ee59b0618bf68d759bb5ee4f5ed8
BLAKE2b-256 4e6003830431b115a2c1dbd0e65c7b9c4f9a56e82dd7c860efbb2bef3c6852d7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page