rclone-crypt


Namerclone-crypt JSON
Version 1.1.3 PyPI version JSON
download
home_pagehttps://github.com/Ftbom/rclone_crypt_py
SummaryPython implementation of encryption/decryption for rclone (crypt storage)
upload_time2024-10-01 02:45:11
maintainerNone
docs_urlNone
authorftbom
requires_python>=3.8
licenseMIT
keywords rclone decrypt encrypt
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # rclone_crypt_py

[English](https://github.com/Ftbom/rclone_crypt_py/blob/main/README.md), [简体中文](https://github.com/Ftbom/rclone_crypt_py/blob/main/README-zh.md)

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

## Usage

```python
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')
```

```python
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
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Ftbom/rclone_crypt_py",
    "name": "rclone-crypt",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "rclone, decrypt, encrypt",
    "author": "ftbom",
    "author_email": "lz490070@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/34/17/6308bc3f4998c04ee93a2b2c569480c33e011aa374c931ec96b3db5e72fc/rclone_crypt-1.1.3.tar.gz",
    "platform": null,
    "description": "# rclone_crypt_py\n\n[English](https://github.com/Ftbom/rclone_crypt_py/blob/main/README.md), [\u7b80\u4f53\u4e2d\u6587](https://github.com/Ftbom/rclone_crypt_py/blob/main/README-zh.md)\n\nPython implementation of encryption/decryption for rclone (crypt storage)\n\n## Usage\n\n```python\nfrom rclone import Crypt\n# Initialize\n# Pass in passwd1 and passwd2\n\n# The password here is the password for creating the crypt, not the password in the rclone configuration file\n# If passwd2 is not set, the second parameter can be omitted\ncrypt = Crypt('PvrhK9lOaJMdJO2', 'bjnW66SNkUuV4hX')\n\n# To use passwords directly in the rclone configuration file(obscured password), you should set the passwd_obscured parameter to True.\n# crypt = Crypt('SpnX0yEFxpNJjo9bxd3xAlVoXA7F4cr3C0SA-zmfzw', 'ziWH7jKYerB6o5vHnaXAvISTguFD6ZFJFbhT3BlLVQ', True)\n\n# File encryption/decryption\ncrypt.File.file_decrypt(input_file_path, output_file_path)\ncrypt.File.file_encrypt(input_file_path, output_file_path)\n\n# File path encryption/decryption\n# obfuscate\ncrypt.Name.obfuscate_encrypt('Hello,Word')\ncrypt.Name.obfuscate_decrypt('188.Nkrru,cuxj')\n\n#standard\ncrypt.Name.standard_encrypt('Hello,Word/\u4f60\u597d\uff0c\u4e16\u754c')\ncrypt.Name.standard_decrypt('tj0ivgsmd9vh4ccfov7f739in0/lb8g1ak1849smj6mlmpv2c5aio')\n```\n\n```python\nfrom rclone import Crypt\ncrypt = Crypt('PvrhK9lOaJMdJO2', 'bjnW66SNkUuV4hX')\n\n# bytes decryption\nwith open('test.bin', 'rb') as f:\n    f.seek(8) # Skip the fixed file header b'RCLONE\\x00\\x00'\n    init_nonce = f.read(24) # Read the nonce\n    f.seek(5 * (1024 * 64 + 16), 1) # Skip 5 data blocks\n    input_bytes = f.read(10 * (1024 * 64 + 16)) # Read 10 data blocks\n    output_bytes = crypt.File.bytes_decrypt(input_bytes, init_nonce, 5) # Decrypt the data blocks\n\n# bytes encryption\nimport nacl\nwith open('test.bin', 'wb') as f:\n    f.write(b'RCLONE\\x00\\x00') # Write the standard header\n    init_nonce = nacl.utils.random(24) # Generate a random nonce (24 bits)\n    f.write(init_nonce) # Write the nonce\n    with open('origin.bin', 'rb') as fl:\n        origin_bytes = fl.read(1024 * 64 * 10) # Read 10 data blocks\n        i = 0\n        while origin_bytes:\n            f.write(crypt.File.bytes_encrypt(origin_bytes, init_nonce, i))\n            origin_bytes = fl.read(1024 * 64 * 10)\n            i = i + 10\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python implementation of encryption/decryption for rclone (crypt storage)",
    "version": "1.1.3",
    "project_urls": {
        "Bug Tracker": "https://github.com/Ftbom/rclone_crypt_py/issues",
        "Homepage": "https://github.com/Ftbom/rclone_crypt_py"
    },
    "split_keywords": [
        "rclone",
        " decrypt",
        " encrypt"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4e6003830431b115a2c1dbd0e65c7b9c4f9a56e82dd7c860efbb2bef3c6852d7",
                "md5": "8887ee59b0618bf68d759bb5ee4f5ed8",
                "sha256": "ee7e818140dca33bde3a7470dcc986499fc4a82522781d90e6b484f4f8cf34f0"
            },
            "downloads": -1,
            "filename": "rclone_crypt-1.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8887ee59b0618bf68d759bb5ee4f5ed8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 10212,
            "upload_time": "2024-10-01T02:45:10",
            "upload_time_iso_8601": "2024-10-01T02:45:10.085791Z",
            "url": "https://files.pythonhosted.org/packages/4e/60/03830431b115a2c1dbd0e65c7b9c4f9a56e82dd7c860efbb2bef3c6852d7/rclone_crypt-1.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "34176308bc3f4998c04ee93a2b2c569480c33e011aa374c931ec96b3db5e72fc",
                "md5": "25b591f61383a813daa56ad5b4217e39",
                "sha256": "4f5a1b8d70d9df4fde6d1670138ea6c097dcc582af4d84cf510c4f4c935097cd"
            },
            "downloads": -1,
            "filename": "rclone_crypt-1.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "25b591f61383a813daa56ad5b4217e39",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 12650,
            "upload_time": "2024-10-01T02:45:11",
            "upload_time_iso_8601": "2024-10-01T02:45:11.090406Z",
            "url": "https://files.pythonhosted.org/packages/34/17/6308bc3f4998c04ee93a2b2c569480c33e011aa374c931ec96b3db5e72fc/rclone_crypt-1.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-01 02:45:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Ftbom",
    "github_project": "rclone_crypt_py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "rclone-crypt"
}
        
Elapsed time: 0.85113s