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.1.1-pp38-pypy38_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ddca26838f2fa61d1583810a032f0907bbc3d0e19f2a1ad7b4f2733ccc2e3d3 |
|
MD5 | 2aec37fabc546a5d4f80e7f0e8114249 |
|
BLAKE2b-256 | 9eccae114458a5a3725cf380ded5ecafd7e10da00e558b6d7c2b923630a3b295 |
Hashes for arc4-0.1.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c49e494848acea00ee30898662fb6f3f49badd81a344ecb0c828e613698268b4 |
|
MD5 | a6972f99ec8b622604f7953f24c9b10e |
|
BLAKE2b-256 | e18876448939595e4c94db8f74a7befac8d68f3eae80d32482cd321af9c11437 |
Hashes for arc4-0.1.1-pp38-pypy38_pp73-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 976ada5e21e661dd3e1777ee2dbae9f231769501c16d8ea3efd31d32ce644df1 |
|
MD5 | cda240bf31a73042c285737a11992692 |
|
BLAKE2b-256 | a3bbd5f42889597e9af507fdd0dfdd44ba7f5f444cf793a9b7d8ab63be7d2d0f |
Hashes for arc4-0.1.1-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07616e88e67da78e80474abf2a76069c879bed4be8f951eb11d1db1f5a090e43 |
|
MD5 | 0f5e3d4108c1252ba2471ae6fef15c06 |
|
BLAKE2b-256 | 20f2126aef359c6fdf12dde25318ea4ef6e0596f10a521602952b46ed8730ff6 |
Hashes for arc4-0.1.1-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c76390dac0257735c09414ad0bc5fd6c1e67c3ea3e65a4335a882e7f3c49145 |
|
MD5 | 4627c32ca35f18f1e4a60d81f4d40b14 |
|
BLAKE2b-256 | 5374d4e9c0520cfcce35240d6572e015d3831f9b78a1ab3081a210693716c64e |
Hashes for arc4-0.1.1-pp37-pypy37_pp73-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 877580b2d90441e3a4dfe8031a20db5e6c4009129f0ecf5972ffbfb1fb8b0657 |
|
MD5 | f69e5e7a0d44472545aad7382523452b |
|
BLAKE2b-256 | 542133a0565ea498326c02248dddfe0df214c75f1623afee46e9067f3e7c19d4 |
Hashes for arc4-0.1.1-pp27-pypy_73-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7464ae0644b0ce223a21266e2fcd40343387bfe43199105c695a660b42877f68 |
|
MD5 | df32bba35734cdefc7786d5a0f9fa80b |
|
BLAKE2b-256 | fb7aad4ba1a323bf903c5e969ac08da379369c8a4f5d3f5364a84d2f261c0ca9 |
Hashes for arc4-0.1.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36a8dbb45b3259372ec53c93f69a796ecf90e999876a666e5ed18397c4bbe790 |
|
MD5 | d8a18ab8fe9e5a4b0e0159ca5b027239 |
|
BLAKE2b-256 | 5df943e1c96c4151c0670db82888ea820c912152cc817506cc2a3ae34de705fd |
Hashes for arc4-0.1.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7413ad6c678c7273b7ca35a32efce0b4d9efcdba724ecab8a771053e05c57f35 |
|
MD5 | c65d63cc882f4f0c39955f7b21a6638e |
|
BLAKE2b-256 | e8f9b52b43fa834c5752944757ddabb4aa16b11d7b0d713fc5e7f15c9c86d6d4 |
Hashes for arc4-0.1.1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 418361161f923969ec0bdb75ce26399eac365217e97f17ede3e3565afb31d203 |
|
MD5 | d1e13f39225c48838c5e3a510ee135bf |
|
BLAKE2b-256 | c34d44e1899b521fb7050461c67fc9deb991f694662a6b04d71c04a8412b013d |
Hashes for arc4-0.1.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 644eab5dc7f2ead5b89e5042c021c906efab9004c6bdc9ac2ecd37e2fef6a5bc |
|
MD5 | 5310fdba56efcdd4c9b6f98f21ed3699 |
|
BLAKE2b-256 | f5670b2b997ed05bfbfd5955b3e24a4246a683ceab948637d750a0017cd267bd |
Hashes for arc4-0.1.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab558340213a13f54fcfccc2a4d1adaa2bc2a8c3ad0f111f17a754e1dd9c430b |
|
MD5 | b97f8533e7a930084c4c4354af026dd8 |
|
BLAKE2b-256 | de94875191da0a0337202fc0cea218e66ba647e3de4e1282d68e4e81c53bcd4e |
Hashes for arc4-0.1.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a4905665a0c88a192620707f9751a1641397263ae9c30a7a57f0ab9b4e17d1a |
|
MD5 | bd31647e2c287677ce5745a3613fc181 |
|
BLAKE2b-256 | 49a0291ddfd053cb852e1d24d75e58080374fadb50d8ee337aff02732f148cfc |
Hashes for arc4-0.1.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4041ae7768a3b37ce602667b8aa861ef049ec11f6fd76f4eb0044a18853cf7b6 |
|
MD5 | e111fd565316cb9f50c1f2516d85b2a4 |
|
BLAKE2b-256 | 2910617c880765ac952cf169b2f8e6cd2f5874fa8a41ca7637dec1f9d1dadc92 |
Hashes for arc4-0.1.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ae12959e68aa3a53936e1320713643c52462055a001aabf6f22923236187313 |
|
MD5 | e12755c69106f37ff76c22c57a8d3f10 |
|
BLAKE2b-256 | 373401961b604e4f40ac39ac99e1f6f5c5d6baadb9731c5092e81468a4f80894 |
Hashes for arc4-0.1.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdfd141b6278f23eb6918f4c46f19fe23673b0912a3f91cbbfe453f9ae51b257 |
|
MD5 | 46c08ca733d26e082ef8df9d2c20e4af |
|
BLAKE2b-256 | c9b1f28eb63326937e7157f78e4bfb30c1e9a36684eb95fba978683a30e3520c |
Hashes for arc4-0.1.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fd4283be352e454a66a1be4860a772a5b9c4f2f9d76ddeb16ea001dffc39f2a |
|
MD5 | fd1c27a477bda5819c92ca4756e5c339 |
|
BLAKE2b-256 | 414e001f63bd4155f920b50151b874bc7056f03d3c92bd1afc97cec1c887b78d |
Hashes for arc4-0.1.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a35f2517a94800126d9e9ec672a67352ae5345af617206c2bb4c6424190a8c1 |
|
MD5 | 3dedab6e6daa3d88765a4a6e0bbb597f |
|
BLAKE2b-256 | ef839dbb0b9f4680978cc575aaf0e87db0202b394cb898c0599fbdde53ba707d |
Hashes for arc4-0.1.1-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dea1ce51c3906deefc7ffe31d019bc7ddcd33875a2bd20a8bcfbb8b958ffa8d9 |
|
MD5 | c6a73c8d9d5050b458028615617baeb3 |
|
BLAKE2b-256 | 2d919b9d9d6f4f04d777001f63d1ec5ec0f7d5213e79e178085669d7d69767e6 |
Hashes for arc4-0.1.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87b7e331ee3a0a8eefae87867617b8f826a09e331c5fb8584b0693bcaa064822 |
|
MD5 | fc113065178cebd8986e339eacb5f4f3 |
|
BLAKE2b-256 | 1f2a3e0b272c1da57e2c88ff26305a89ef0b9d8d463c642f208db480bbab3035 |
Hashes for arc4-0.1.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6adae4c4666b4347fb548c96891bd01ad19746c0f4f67c2fccc36442f695c07 |
|
MD5 | bc88077658e45296ea403b53c69cb49d |
|
BLAKE2b-256 | e91a9e27f6a3127dd72383163c186b683d7b0ae240a4fded5231468f2b4c4b28 |
Hashes for arc4-0.1.1-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8457aeb5558c3af1c39a6968885d609787520539c99bed07dbdc0ff800f30ef |
|
MD5 | d739230d58177903430221ed02aa80f3 |
|
BLAKE2b-256 | 5afa6f1fc114ac978084ec0cd669ff096e130ea0b6a0b338fe016332a38fab59 |
Hashes for arc4-0.1.1-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a431e220b660df01f905a595bb10340e1c215fa9f677e177dde3be11099db871 |
|
MD5 | 19436f1a54c3f99a3cd52bc48df6e3fb |
|
BLAKE2b-256 | b006d455cdcc276d18accf087176c3e6382f0c560985c3d47a3ae0f3488a6671 |
Hashes for arc4-0.1.1-cp35-cp35m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a44761daa6e20fa16ef2e36099bfd6c0fe40677d344669b23b509c9ac238a67e |
|
MD5 | be4fe990f9b0b7bd45d7b5ccbaf4ee06 |
|
BLAKE2b-256 | beec565ea3168efe5767fcae6850dd0a291a08ba1d60004489428263cb727822 |
Hashes for arc4-0.1.1-cp27-cp27m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11ee5cf4d8c3bca901ad49cf2a507722adf00361141bccea49c23e7ff5ff90d7 |
|
MD5 | 5e93f97a4e80a67b25ae4533258ebd42 |
|
BLAKE2b-256 | f9fe7802f89a0e1cf54e483a07832f2d948f0b710e34a2d371eafe291f59d102 |