A small and insanely fast ARCFOUR (RC4) cipher implementation of Python
Project description
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.
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('key')
cipher = arc4.encrypt('some plain text to encrypt')
Because RC4 is a stream cipher, you must initialize RC4 object in the beginning of each operations.
arc4 = ARC4('key')
arc4.decrypt(cipher)
Documents
Here is the API reference.
Testing
python -m unittest discover
License
This software is under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for arc4-0.2.0-pp38-pypy38_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae9ff3f01a5f19a92413a61b1993ebe8ddd1321dafb05d1869675bf53f5e697f |
|
MD5 | 5f89f1c8712cb00722510ce3e10654c8 |
|
BLAKE2b-256 | 13bcf3593d1606a3a7dfa0ac253e761549dc78440c706e5f2262b59ab4797c63 |
Hashes for arc4-0.2.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 990c18c1dea4d7a067aa403439cc03c4673395d9d89e38b5c6d507e96e1467fe |
|
MD5 | fced2df87de9a98c5d3cd2b6b9b6a5ca |
|
BLAKE2b-256 | 1608e0e539c4244b92b3464af531edff7d5a628671c7d8b127370dfee59961db |
Hashes for arc4-0.2.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b6184a09b88aca40da18d9e6653ce2db51795b76be19ee21b0fd50decffbd86 |
|
MD5 | b5352f53f79d6bc6ce0ed4037f482040 |
|
BLAKE2b-256 | 6a76b385b217977d0a7bdfa3c27f777c83c2eb102be8fc18e769ec96dae55f47 |
Hashes for arc4-0.2.0-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ebe1e9b0c0fea0852773a4a227580d07ba9a067c5c7c2d362f6205fee408327 |
|
MD5 | e82cdf26915f809031d9bf444d5d76d4 |
|
BLAKE2b-256 | 960aa12af95468ade656b873c2042c2f199c8aa9eed1bc5aa400f9c96806bb0c |
Hashes for arc4-0.2.0-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 257f2ce1f941d83ede9b680a96dddd027d4456127fb4d52c5809fdf12d65c436 |
|
MD5 | 19cac0f04f5372e7c19f7c60330d5068 |
|
BLAKE2b-256 | a8371c711c32fd2cdf8a57abe372bcb421b888414de50ac5d5eaa93fac2773ad |
Hashes for arc4-0.2.0-pp37-pypy37_pp73-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9448971fe54f3b1bb1a61a6f9ccb97cf19de274a00417f3be6023ef2f0ba8f7 |
|
MD5 | 2d1b84dcca165b8f8a42c78d182cfdd6 |
|
BLAKE2b-256 | 3f26906df7b8243ee17582d909345a95b69a628b3afcfe523c1d27d66adfbd39 |
Hashes for arc4-0.2.0-pp27-pypy_73-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f04ba6437b201d36b8bc70914a9325db092b1cf9d87221a574f5c1b5ed79935 |
|
MD5 | 2f27d3b0bbdac80183737f4ad35205b2 |
|
BLAKE2b-256 | 62080ee3ac5630ea798930baac239f78b580f2a7bbd1da2f3aba90320d207a1b |
Hashes for arc4-0.2.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab9f467b65851d2fdb90718b1af332ccb62dff2fcf81f8ee45922a5ee060cf4f |
|
MD5 | ee5456b7a78a11e39ee0040ffa08a447 |
|
BLAKE2b-256 | eea74f7a7fa8cbc59f49ecff5ec9e7d367c37557d0276672b18d760f5cb0e0b2 |
Hashes for arc4-0.2.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09d04e124185251edbcc77b8df3f3a20a1f06f08a7c19e068f335457a3440cb2 |
|
MD5 | 2f9067aaf0d52761e7377ad4da63ca0c |
|
BLAKE2b-256 | 79a97a6c41d74758af744a61911e6b75b71103133b925b463322a1729e18fbc1 |
Hashes for arc4-0.2.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b140ef79ec03291d78d7a0ff741fc942791f82737bd9f4cf3fcfad2ca75733d3 |
|
MD5 | a384420f397641ce0d16e5c390d91c4b |
|
BLAKE2b-256 | 4eff1bff2fda1311aa568b6ac29eff55f3e101987316892d3669f145b04678d4 |
Hashes for arc4-0.2.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07abdab94f0f1b043ba704e8aa8eba54b105b139fe4f75596b6ae9b18d0eb505 |
|
MD5 | d9ec94514549f387020913eba6e9bbb3 |
|
BLAKE2b-256 | 2434c3cb26c6d310aa9fe15a966c5893ce4b0546769752c92e5fc75ca7313213 |
Hashes for arc4-0.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c054853b91164f5a82f957a3dff382884e22937163efbaae17b0d4bbea46366 |
|
MD5 | 6f40c2fffef3d1178a9e34f956ea27a8 |
|
BLAKE2b-256 | d9076c7f2dc53c2c33bf4c9b0df48f6a95f3f03c8385892247d1a55f3a28daea |
Hashes for arc4-0.2.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d77375fd5e4775977f6fff5e96ac154dc476b7c385d8f8165b212fc275db322 |
|
MD5 | 9ba0b5063d410caddec26340d5393d62 |
|
BLAKE2b-256 | 481540219f1ea6e6bf79b5ea69a7bacec1ed8bd0373c0081ae110308eddc2d41 |
Hashes for arc4-0.2.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71e96fdcea6095fd32c62ecf2b6b3dc4b2bafd84467c589de84e31a4891ccff7 |
|
MD5 | e3d7cc3cd2a8de7ee42b6d632ce6d702 |
|
BLAKE2b-256 | e5be9cba36c5e280b2d93f90c7caca39508d2930a72881a7b91f22a0283d64d6 |
Hashes for arc4-0.2.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf128ecd864bb4a20ba254ad839aa731d7f517476b09c10b2150685161a6c193 |
|
MD5 | 2f93bb43ce2eb4096d32276ae51f1405 |
|
BLAKE2b-256 | bba26dade180f18e1136dec0ec419c9c1547765e0f8cfc2efc6e9053aa3ca506 |
Hashes for arc4-0.2.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf12fabb44f568b152b974342668a1352530a0406c6c81f37c835621571d2242 |
|
MD5 | 1213a2cb86428a883b6f486f5251c818 |
|
BLAKE2b-256 | fd1a9dbf39e79decad13c42e2f5bb87bb821ef32d8a5a4879207a0a2172666a3 |
Hashes for arc4-0.2.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0db490dcef1e00015a3c1c766805650cb22697fca095bd6a8678d0c7cb021754 |
|
MD5 | 103450e15712ee5519b52bcf08c1aa0a |
|
BLAKE2b-256 | 2c528e115ed3114aedd44bd36e23622bea654dba93a7b92529e1ce21c7edf489 |
Hashes for arc4-0.2.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f968f8eae0d99b614543db53f54c4679e3c13f447b20dbea0155c8e0ff02d534 |
|
MD5 | 24c6fa4e512b0d570c39e0d9855df450 |
|
BLAKE2b-256 | 24259973216ff1c56fbf53b31c1348146f492abd6bd0deddbcd0469082970cf4 |
Hashes for arc4-0.2.0-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 581bad5813b161ad11f93382b079a4582bd46b32b5fae80bae416f4a9beaeb8e |
|
MD5 | 4650662de7953feaf431b763f5a1cd53 |
|
BLAKE2b-256 | 9a6bd0e4a162ddca83b9a4cc9d45df7b8836ed6783b6c443bba0a0191737c865 |
Hashes for arc4-0.2.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6bdde32746edcb6e3990b6c35843b6d231431acddcb4d6f08e3dfc53bc03dc9 |
|
MD5 | ac69824d6b76607b7aac6fff75be52f0 |
|
BLAKE2b-256 | 9c365e6535bee4de9d07e58433f35bbd12c9a8bbc0ccb82e4a0b8a8de41fbcb0 |
Hashes for arc4-0.2.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 673d2e8bbb21ac147a101048ac5b06e15efd8bd34458898f5d5c5998ee6ab82f |
|
MD5 | f5c3a7f93e0c3856d5079ef324d0985c |
|
BLAKE2b-256 | d2399380f7c30516f3aa5eda85ffcff02866edb081f32cbd98dc14265b1292e4 |
Hashes for arc4-0.2.0-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 837131b72902fc2e73aaf13e2f2d65c6e4a3216a6759ebab21eedb558d54269c |
|
MD5 | 8e759e829c85543ff5df5d386b66519a |
|
BLAKE2b-256 | e691ec6d022880c22a6ed98c8b4defd0672aedd8aeb7c90d6949515ee4bdcfed |
Hashes for arc4-0.2.0-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d45ac7c1a5c32dab417760bcca0bad7c0097d5afc0ad0b62d90152facd1b4082 |
|
MD5 | f75afd2926080bb0b46672729ec79386 |
|
BLAKE2b-256 | d1cb91de92dad61db777b909ecfb440447d308fd056ccd3c51e5948fc5e3e9e7 |
Hashes for arc4-0.2.0-cp35-cp35m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a49a3848f3f7fbca40d972afee436226a6285d294b1abc8036e6de0d2c741610 |
|
MD5 | 87d7735fb88712f19e14fbda6a358570 |
|
BLAKE2b-256 | 69d1207487a078b451478e113c845eb99b28803fa142b92d2791426314daa751 |
Hashes for arc4-0.2.0-cp27-cp27m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a154dc0a328d2f15bc2761fa18a12f97c48c5c99e9f4be77fd3ad1f62769720e |
|
MD5 | a7a6a2b84b73c85ea86db810daff4b41 |
|
BLAKE2b-256 | e998905c797c18aa9f7d5e6e1928c7fea9720afef7dc9802595806935f625947 |