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(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.
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.4.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3da0dd7b6dd38c71af105aebef42bf587a624a0b26231717f1dcc53f36ab14d6 |
|
MD5 | cc6d099e389592a8d1fa1ea0b193174e |
|
BLAKE2b-256 | 1abfbef7533fe21f737139868baac23e39d24705de6a5913a454a40711b11e37 |
Hashes for arc4-0.4.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e5137eeb8f4c6f0c3bd23731c58359d554722b08119156058c99c337e78adb0 |
|
MD5 | d4ebf20ed32b94acda943c94bbfa18fc |
|
BLAKE2b-256 | 3aca90b044317c63798c8e82bce9ea62393f380a896bae8c937935c59524d06c |
Hashes for arc4-0.4.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 516e4fb4543e2a7c958b6fffb7658ba905b25b30af387b54c872418d87192fe6 |
|
MD5 | aa54ab9c2f567c71e34aa32ff29b8e64 |
|
BLAKE2b-256 | 3fb35dd3e1b8fd6baaf48679d4b033eca6dcaddfc6ec27756d2817f23e2f6432 |
Hashes for arc4-0.4.0-pp38-pypy38_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15603d81bbb990038dfe7f7a424d16549161b2d5c1e216097cb065023895f398 |
|
MD5 | f4351a70779ddf1f4b1c040244338e76 |
|
BLAKE2b-256 | 08287ce2e9f2115275c3f58cc879b04df236d58fb57e2f9020c54c647eff4985 |
Hashes for arc4-0.4.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9954ee25a0687b1076791ae92cacb20c152fad2bf5bdac608f4c9472d76e83f0 |
|
MD5 | 77fc99c2fffad47a0f251e1f8d3f6195 |
|
BLAKE2b-256 | af5d3061704fa32a394a01fd48f9977d5be6ba51226640806d8fb2056704d26d |
Hashes for arc4-0.4.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1c72ceaff1b366d25ca5945ed381a520a8116195b7a4b0a69aaccac3f00d7ae |
|
MD5 | 43256be440daf33a4370911778cd7271 |
|
BLAKE2b-256 | b4dc9ab21876914aa1879cad7bcc6b511bf681b155f3d859eb458492a8d786a6 |
Hashes for arc4-0.4.0-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24d5aaf57494219651e15e260c4d3747c99764b94ea6fc46b09031c3ed2ef9d3 |
|
MD5 | 08f66871f3a1b52ab599b3affd1c0e88 |
|
BLAKE2b-256 | 124367a93b3a32159887ca1bf2b607f2fbe5c2da7513a34348f562ff26584a79 |
Hashes for arc4-0.4.0-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e284d731da57f3c036c2497db47baf198057777f71670fe84d84347615df3e9f |
|
MD5 | 474a7cc6c1fa505bada5e11d23e79d85 |
|
BLAKE2b-256 | b96c9aa3ab230f93ed00ca1f6b10aafc7f192e0231c959091770a9bf4226572d |
Hashes for arc4-0.4.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19d130ec333d9be891b156c02a4436b002ac486bc072644a453fabdfbe0354f8 |
|
MD5 | 126dab3942c4e440551d6ae87eb6a919 |
|
BLAKE2b-256 | 14b2e586e847a2fe285c38eb0cc561a0234b0f8f56e876de43dced64f17ff2e2 |
Hashes for arc4-0.4.0-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b9d14ed487f373c0d47b97262a3f26d6f03e725d640c4c230a51f5f3dd8a6b4 |
|
MD5 | ff321d00a1492a00e86aaa46072b8838 |
|
BLAKE2b-256 | 6f1c600b0b7639824d0b4f9a587b19aba5d8856bb0b0bae222b471ddea9e8edf |
Hashes for arc4-0.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0b9adcf7ab7ef7ca0ab60cf7e2dd8886fbc6610471ea9a8c7fb34416265451c |
|
MD5 | 41a2eca2807f439f702edd52def39e83 |
|
BLAKE2b-256 | 7f2f5fa47c3b00527ea6d94069a2bd7e02567a2d4e5e7d5d5fd80b790c13a1e8 |
Hashes for arc4-0.4.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cdae371789b621927866a1b10862ea20dbe519b1b86cb725ff2dd95525c704f |
|
MD5 | 486bc221380ed7175eba9252c6f1b104 |
|
BLAKE2b-256 | d576e1ab69419aca97e37329c2cba58951eacd9baba1933b6c628347a2d46257 |
Hashes for arc4-0.4.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd9c4fc470019e184f72aacc5fdcb2a3364e7c174aaa6de2486ca18e9d377a5d |
|
MD5 | 203f7cb32f681db2696c2c670f5f0351 |
|
BLAKE2b-256 | 1895a31bfc7df587112fc718b906ed3b3237b43d9c77ab59c8b388aa3ea00a25 |
Hashes for arc4-0.4.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f20540dd6ab695e6d1205a5edb4df416688ef39242cbbec4ad0b534e38ffe55f |
|
MD5 | 264840b53a45abefe0138fb0ece89418 |
|
BLAKE2b-256 | bb7c6528838027abe57aaa47a32b48e9cf8e7318f42f3cdbe86568088f219d2a |
Hashes for arc4-0.4.0-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d27d6cb7fef8787c3cb91c06a6adb2315551f42af3b4142d45703d5303e6ad2b |
|
MD5 | ecc0c96180b9a54864109f7bcd908ccc |
|
BLAKE2b-256 | a1344341c7076e62727f8182ced8b45cfa99a2b88530c93e9d6f93aec231d2be |
Hashes for arc4-0.4.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f419c08cfb2cc8f374725a76dd8fd40d87b6a0e236774cb3307f2f51f6794c1f |
|
MD5 | c8a5e76b90654d7de59dc055a6e7c9f0 |
|
BLAKE2b-256 | 0bba370b6152863da24a8c01007cbb47d8930604edf116a7c59a055d53951e46 |
Hashes for arc4-0.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b935c41b8691001b6a6746c2611a0a76962720a83688501dac8f3c74f9db4f34 |
|
MD5 | 2fa2efaf14b811c8e520a9d9028584ed |
|
BLAKE2b-256 | 5f6b3a18540fc446e7302aacba317174fc331939e313c8493cf60d3166236613 |
Hashes for arc4-0.4.0-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 779d1b53c75e66edd023b9240dbd00df7b241ab50b6a4ea86ab97117dbbff86f |
|
MD5 | 564038bbee1d9c264be1699eafd96e2d |
|
BLAKE2b-256 | b59e9a3fe209fae8259752e8ad7a1b58348fadf23f0db7b675a98aa09cd55271 |
Hashes for arc4-0.4.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb5eb33e3c68d68c548355aead25843502d3d1b909fa2e3b3f2520d467708af5 |
|
MD5 | 2ed55deb356277d64a8ff210a1351703 |
|
BLAKE2b-256 | 27472a1346f416658524b04bf06386be765311935f94c73ce4e609f49df07af3 |
Hashes for arc4-0.4.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62ed00203dee645d99422a1dc1efdd5ca108048e8c047a239c3be0a690f6abb6 |
|
MD5 | 4df1e89f11a8b077bca5ef9cabc8a42b |
|
BLAKE2b-256 | 9f636b6e6c9615ce0d6fb05966d1206dc504fe40d4ca542467c63c04b9a11eef |
Hashes for arc4-0.4.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2104d551744e9b851a12c144b512244da224ab4f5f68ed28a45a599937ead1cd |
|
MD5 | 7c754052c8f5e8aecd7407e71ef073e2 |
|
BLAKE2b-256 | f6f2626aa3388bf555b40af8682195489d934aa5c0d8a02103b1a81aecd4463f |
Hashes for arc4-0.4.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be661d59b250e83753fd0aa7dfb0796f1475c19be929d581805e1a1c998fb959 |
|
MD5 | 3a001281949f567f328d8d936b47514f |
|
BLAKE2b-256 | a0353e08553a571dd942e8c31038545f224645a35bc39d193cbbbe4fc73fe836 |
Hashes for arc4-0.4.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e2e52410c5dde5cd7a89eb32440ad94de99b6bb2d6c886a099455b71f68dee3 |
|
MD5 | ee2a49af0b7c3e062ff4232f9e8a93fa |
|
BLAKE2b-256 | cd1ba0b25284cff5b1309c387ef74eedca1bf25c59cf2aa91b588cbb37c52a97 |
Hashes for arc4-0.4.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45aba6a58fd8d83ec8fa14d8e99f686f9317667c19adca56c5eaa59aae630b3d |
|
MD5 | a28d98fb40803f80b979e587bd954444 |
|
BLAKE2b-256 | 6cadb7b562a746706e96bf616b769caab904a2256a535ace50518da1d667b8c6 |