Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
A small library for obfuscating integer values to key strings using a set length and alphabet.
Readme
Taking lessons learned from supporting BaseHash over the years, it was obvious that it could be optimized, thus Obfuskey was born. BaseHash had some misconceptions, mainly that consumers thought it was a crypto library due to the word "hash". Since a hashes are generally irreversible, this new project was born to clearly convey what it is used for.
Obfuskey was a way to both modernize and simplify BaseHash, while keeping the same functionality. Obfuskey generates obfuscated keys out of integer values that have a uniform length using a specified alphabet. It was built solely for Python 3.6 and up. There are no guarantees that it will work for lower versions. If you need this for a lower version, please use BaseHash.
When generating keys, the combination of key length and alphabet used will determine the
maximum value it can obfuscate, len(alphabet) ** key_length - 1
.
To use Obfuskey, you can use one of the available alphabets, or provide your own. You can also provide your own multiplier, or leave it blank to use the built-in prime generator.
from obfuskey import Obfuskey, alphabets
obfuscator = Obfuskey(alphabets.BASE36, key_length=8)
key = obfuscator.get_key(1234567890) # FWQ8H52I
value = obfuscator.get_value('FWQ8H52I') # 1234567890
To provide a custom multiplier, or if you to provide the prime generated from a
previous instance, you can pass it in with multiplier=
. This value has to be an odd
integer.
from obfuskey import Obfuskey, alphabets
obfuscator = Obfuskey(alphabets.BASE62)
key = obfuscator.get_key(12345) # d2Aasl
obfuscator = Obfuskey(alphabets.BASE62, multiplier=46485)
key = obfuscator.get_key(12345) # 0cpqVJ
If you wish to generate a prime not within the golden prime set, you can overwrite the
multiplier with set_prime_multiplier
.
from obfuskey import Obfuskey, alphabets
obfuscator = Obfuskey(alphabets.BASE62, key_length=2)
key = obfuscator.get_key(123) # 3f
obfuscator.set_prime_multiplier(1.75)
key = obfuscator.get_key(123) # RP
There are predefined alphabets that you can use, but Obfuskey allows you to specify a custom one during instantiation.
from obfuskey import Obfuskey
obfuscator = Obfuskey('012345abcdef')
key = obfuscator.get_key(123) #022d43
If you need to obfuscate integers that are larger than 512-bit, you will need to also have gmp2 installed.
$ pip install gmpy2
OR
poetry install -E gmpy2
FAQs
A small library for obfuscating integer values to key strings using a set length and alphabet.
We found that obfuskey demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.