Skip to main content
Test Test Coverage Maintainability Documentation Status

A small and insanely fast ARCFOUR (RC4) cipher implementation of Python.

  • Strongly focused on performance; entire source code is written in C.

  • Thread-safety; you can improve further performance with multi-threading.

  • Easily installable; single file with no dependency, pre-built wheels provided.

Benchmark

Below is benchmark metrics against 3 major RC4 implementations.

Benchmark

The whole benchmark code is in ./benchmark.py.

Install

Install from PyPI

pip install arc4

Or clone the repo and do install

git clone https://github.com/manicmaniac/arc4.git
cd arc4
python setup.py install

Usage

>>> from arc4 import ARC4
>>> arc4 = ARC4(b'key')
>>> cipher = arc4.encrypt(b'some plain text to encrypt')

Because RC4 is a stream cipher, you must initialize RC4 object in the beginning of each operations.

>>> arc4 = ARC4(b'key')
>>> arc4.decrypt(cipher)
b'some plain text to encrypt'

Documents

Here is the API reference.

https://arc4.readthedocs.io/en/latest/

Testing

python -m unittest discover

License

This software is under the MIT License.

Release files for arc4 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arc4 0.5.0
File Size Uploaded
arc4-0.5.0.tar.gz 6.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for arc4 0.5.0
File
arc4-0.5.0-pp311-pypy311_pp73-win_amd64.whl PyPy 3.11 PyPy 3.11 7.3 Windows x86-64 Details
arc4-0.5.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details
arc4-0.5.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl PyPy 3.11 PyPy 3.11 7.3 macOS 11.0+ ARM64 Details
arc4-0.5.0-pp310-pypy310_pp73-win_amd64.whl PyPy 3.10 PyPy 3.10 7.3 Windows x86-64 Details
arc4-0.5.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl PyPy 3.10 PyPy 3.10 7.3 macOS 11.0+ ARM64 Details
arc4-0.5.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
arc4-0.5.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details
arc4-0.5.0-cp313-cp313-macosx_10_13_universal2.whl CPython 3.13 CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) Details
arc4-0.5.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
arc4-0.5.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details
arc4-0.5.0-cp312-cp312-macosx_10_13_universal2.whl CPython 3.12 CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) Details
arc4-0.5.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
arc4-0.5.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.5+ x86-64 Details
arc4-0.5.0-cp311-cp311-macosx_10_9_universal2.whl CPython 3.11 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) Details
arc4-0.5.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
arc4-0.5.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.5+ x86-64 Details
arc4-0.5.0-cp310-cp310-macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) Details
arc4-0.5.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
arc4-0.5.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details
arc4-0.5.0-cp39-cp39-macosx_10_9_universal2.whl CPython 3.9 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) Details

Total release size: 232.8 kB

Release files / arc4-0.5.0.tar.gz

Download URL arc4-0.5.0.tar.gz
Size 6.6 kB
Tags Source
SHA-256 checksum
How to use checksums
259d4e505766639b7245d7199f3b4e72134d7adf20196820ffd3015954d85955
BLAKE2b-256 checksum
How to use checksums
b6f0881da69973abadac6848d27a0bf070b107ed5547ddbd1b092c30ab4c8b7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-pp311-pypy311_pp73-win_amd64.whl

Download URL arc4-0.5.0-pp311-pypy311_pp73-win_amd64.whl
Size 10.2 kB
Tags PyPy 3.11 PyPy 3.11 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
0c47bb37a5b80abcb7043d6b206068e4fbc90d27564aa667b2e7d90b2e7ff2cc
BLAKE2b-256 checksum
How to use checksums
17ad93ff0cb1be94d16357bdaf65fbe1f9c3dc33eb980a08af2c349bef71a43d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL arc4-0.5.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 8.4 kB
Tags Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
02435fe04cf147aff25a9be5380b16d6084f2469f51620b5fa3af936a6988c51
BLAKE2b-256 checksum
How to use checksums
a68012056b7138febb2e6c1294801ed7d072908ace2df58e0feed9347e3d9df4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl

Download URL arc4-0.5.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl
Size 6.9 kB
Tags PyPy 3.11 PyPy 3.11 7.3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ccbed58bff2ce25b45535173221091b86162727caca66f4e383221f8b306113a
BLAKE2b-256 checksum
How to use checksums
1df6642e3b07a2db870354cfaad91535205455f09a03f4eeee82f72a37634662
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-pp310-pypy310_pp73-win_amd64.whl

Download URL arc4-0.5.0-pp310-pypy310_pp73-win_amd64.whl
Size 10.1 kB
Tags PyPy 3.10 PyPy 3.10 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
e3f9144cad18c4cdf8d02de1068504c045b29461c511963e4a495ffb61af1148
BLAKE2b-256 checksum
How to use checksums
bf080bf1fe83abaf7c877490ef2b550f503cb865a80bab6c2f868e07843a17bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl

Download URL arc4-0.5.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Size 6.9 kB
Tags PyPy 3.10 PyPy 3.10 7.3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cc0f6c9827d5f36a838cefbb3705ce1c6850df456d0e5b81c24733f857f3901d
BLAKE2b-256 checksum
How to use checksums
ece314bd4e0a24dc0f18f2236e40706899784d92059268c8039d32544ff9969a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp313-cp313-win_amd64.whl

Download URL arc4-0.5.0-cp313-cp313-win_amd64.whl
Size 10.1 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
6fb7f6a7b16bc6fc3ed1eefaaa201810edec0e7dc08683970b2be0699b401e39
BLAKE2b-256 checksum
How to use checksums
dff7f7a9473114eead7cdb1419eaab156ad767218be748a47922117cfa1167c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL arc4-0.5.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 17.7 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
b8bcb09611b9e16a3f9d78b747c135386b59803a3fdecf4e7ff03eb3949e671b
BLAKE2b-256 checksum
How to use checksums
dd6e782c46bfc80ca5afd2fc29d5d611a1db9172759aa7d0e538517d6c8a96b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp313-cp313-macosx_10_13_universal2.whl

Download URL arc4-0.5.0-cp313-cp313-macosx_10_13_universal2.whl
Size 10.1 kB
Tags CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
ac5e9c3a589825afd31a10b6edd49bc8fe83ca88b4dc82dea6e977304304d36c
BLAKE2b-256 checksum
How to use checksums
dedcf434e3517d61f8a3d9c19bb2f615942ae0888d35dd1ab8a8f39dbf4014fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp312-cp312-win_amd64.whl

Download URL arc4-0.5.0-cp312-cp312-win_amd64.whl
Size 10.1 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
4d07b1aa184b78a6e10d1920dbe92644b4113b34062ad2869f450e678bb7ada6
BLAKE2b-256 checksum
How to use checksums
7fafc2cd8636fa5f1e5bfee2d2772ac377ecea27112b7d4d5a664df9646542e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL arc4-0.5.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 17.6 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
7a3b4325e550a8bc2b56484edf91a983d2bd3f32fae8f169d5a5846a22554ea9
BLAKE2b-256 checksum
How to use checksums
7a77c4b547dd33a23079dff6e173fc2313841802bb9a1be3975673bf4c5efbe1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp312-cp312-macosx_10_13_universal2.whl

Download URL arc4-0.5.0-cp312-cp312-macosx_10_13_universal2.whl
Size 10.1 kB
Tags CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
7eb640302490f105c68336e763a9e8a9513377c46ad0a704c297d5d943f98831
BLAKE2b-256 checksum
How to use checksums
b2440c9ea0129c022a71ce3d686f4a04280a01657b83d8fff5de683524f10748
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp311-cp311-win_amd64.whl

Download URL arc4-0.5.0-cp311-cp311-win_amd64.whl
Size 10.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
6c20103a2ff7cd43b91d707fb520a3d10dac5b9ef647957a2d19fa3a05725be6
BLAKE2b-256 checksum
How to use checksums
b9f7e4ff9ee3d4b6227fd2e3b34d66d2242b7f55fd245c537b578e7f2b60becb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL arc4-0.5.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 17.8 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
0ffd6df658cf4d348eebbd125e9dcd35fcfcb2efec31ff4258b85791b0207bad
BLAKE2b-256 checksum
How to use checksums
378084266d1b251fe29272d9f7796e3d4a323cf0a005749b6ddda45a191c2f11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp311-cp311-macosx_10_9_universal2.whl

Download URL arc4-0.5.0-cp311-cp311-macosx_10_9_universal2.whl
Size 9.1 kB
Tags CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
343a67c0bd2dcfdee78dc4269d8bd8ac362e6e911047833172468b337faccb1f
BLAKE2b-256 checksum
How to use checksums
e84ff2e28e91c9083876090e6218d3f601f7d54acdb5cc189fd4af406f104778
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp310-cp310-win_amd64.whl

Download URL arc4-0.5.0-cp310-cp310-win_amd64.whl
Size 10.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
631786051c1468d3ec1010d1fc1089b539831d72d7f08ea342bdcd25aa019620
BLAKE2b-256 checksum
How to use checksums
d9e92086b401b89885156424f3d5095de9ae3807ba04b05a768ba320c163ebc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL arc4-0.5.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 16.5 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
83a1f1934c55256838aa40998b87777f881e81c2056af9734cdb35a84574488c
BLAKE2b-256 checksum
How to use checksums
0b6832c530846e2037275c094854c63935a15fac694de9279e62b23d86cf00e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp310-cp310-macosx_10_9_universal2.whl

Download URL arc4-0.5.0-cp310-cp310-macosx_10_9_universal2.whl
Size 9.1 kB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
2a052f9934746d81917032a4f37b390577141c56b4445c7f85c52b1155fdbf9f
BLAKE2b-256 checksum
How to use checksums
243fab228c5d60e1d6ba345fa993b5336cd24376a86851673e112ad09b681c91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp39-cp39-win_amd64.whl

Download URL arc4-0.5.0-cp39-cp39-win_amd64.whl
Size 10.3 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
e6584f7a62bab998ef9a908307448cb62dee6555480da95a0c667e2d7372ab72
BLAKE2b-256 checksum
How to use checksums
dd1ed24142b5814a9f9ddb37630e7ca6316373ab5d2754ee62f36052afcc4e55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL arc4-0.5.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 16.3 kB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
2aa709409fed2e7db2525c5b2022369067feb25a44723a14c90b629c9d2fa091
BLAKE2b-256 checksum
How to use checksums
f92ff3548362dfb6fb09543c48b5f5ac2e4b79a0007942e9cf0f9b1711024eb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / arc4-0.5.0-cp39-cp39-macosx_10_9_universal2.whl

Download URL arc4-0.5.0-cp39-cp39-macosx_10_9_universal2.whl
Size 9.1 kB
Tags CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
8c8ce5f81553956660eb845c9d8ecea3db1de358e2b5fdfd49ba5033da2c4b14
BLAKE2b-256 checksum
How to use checksums
a27d73f01294b591634c1541477c44351f36399d580f681b5de6d2c9e4ecc00c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

0.5.0 This release

21 release files

0.4.0

25 release files

0.3.0

26 release files

0.2.0

26 release files

0.1.1

26 release files

0.1.0

26 release files

0.0.4

12 release files

0.0.3

5 release files

0.0.2

2 release files

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page