(~Uptime affected by updates)
Please do not abuse or misuse this tool as this is a free tool intended for the large amount of RSPS players who have compromised passwords (~60%).
This tool will allow you to check if a user's password/hash is compromised from a known-list of leaked RSPS databases. The password will be hashed using SHA-1 by default and sent to an API that will compare the hash. JSON data will be returned, mentioning if the password is in a breach.
All passwords are hashed on the back-end and include around ~800K unique passwords from various RSPS database leaks (from 2009 - present)
You can implement this to your LoginDecoder (on account creation) or a ChangePassword command for example. [THROTTLE THESE REQUESTS]
Calls to the API are not logged and I would HIGHLY recommend sending hashed passwords and NOT plain-text. API is Cloudflare Rate Limited and is set to 1000 requests a minute (PER IP). If you require more requests per minute, message me. If you are receiving error "429", please adjust your usage.
- MD5, SHA-1, SHA-256, SHA-512 & PLAIN-TEXT
BCrypt is not available. Further hashing algorithms added upon request.
— Can use HTTP or HTTPS protocol
— Data is sorted by most commonly used passwords and hashed
— Returns hashPos (this is how common the hash is, such as 123 being 0 - the most common)
— Option to view/download up-to 100,000 of the most common hashes (as json format)
(required) token : <String>
(optional-default="") hash : <String> [HASHES ONLY]
(optional-default="") password : <String> [PLAN TEXT PASSWORDS ONLY]
//MD5
https://api.rsps.tools/jetkai/breachcheck?token=39439e74fa27c09a4&hash=25ab1f0f2d6386a2702867cd82573ada
//SHA-1
https://api.rsps.tools/jetkai/breachcheck?token=39439e74fa27c09a4&hash=403926033d001b5279df37cbbe5287b7c7c267fa
//SHA-256
https://api.rsps.tools/jetkai/breachcheck?token=39439e74fa27c09a4&hash=ed8779a2222dc578f2cffbf308411b41381a94ef25801f9dfbe04746ea0944cd
//SHA-512
https://api.rsps.tools/jetkai/breachcheck?token=39439e74fa27c09a4&hash=0e2d148eff53f3b82ee3aa6f62c9ef8e3ceeddff865a733c294db55023b121e81f5ffdde83dc07e274c7389d1e1e430c20d582889a6399c32811fff47f260be6
//PLAIN-TEXT
https://api.rsps.tools/jetkai/breachcheck?token=39439e74fa27c09a4&password=123123
{
"token": "39439e74fa27c09a4",
"hash": "ed8779a2222dc578f2cffbf308411b41381a94ef25801f9dfbe04746ea0944cd",
"hashPos": 2,
"severity": "Top 100 Common Passwords",
"databaseBreach": "Stoned 2021 ~800K Unique Passwords (15+ RSPS Databases)",
"hashType": "SHA-256",
"breached": true
}
Request Example 2. View/Download X amount of hashes as a JSON, sorted by most commonly used: [New Feature]
(required) viewhashes : true, false
(required) hashtype : md5, sha1, sha256, sha512
(optional-default=0) amount : 0 -> 100000
(optional-default=false) download : true, false
//Top 5 most common MD5 Hashes
https://api.rsps.tools/jetkai/breachcheck?viewhashes=true&hashtype=md5&amount=5
//Top 5 most common SHA-1 Hashes
https://api.rsps.tools/jetkai/breachcheck?viewhashes=true&hashtype=sha1&amount=5
//Top 5 most common SHA-256 Hashes
https://api.rsps.tools/jetkai/breachcheck?viewhashes=true&hashtype=sha256&amount=5
//Top 5 most common SHA-512 Hashes
https://api.rsps.tools/jetkai/breachcheck?viewhashes=true&hashtype=sha512&amount=5
{
"hashes": [
"7c4a8d09ca3762af61e59520943dc26494f8941b",
"40bd001563085fc35165329ea1ff5c5ecbdbbeef",
"99efc50a9206bde3d7a8e694aad8e138ca7dc3f7",
"403926033d001b5279df37cbbe5287b7c7c267fa",
"8cb2237d0679ca88db6464eac60da96345513964"
]
}
This is an Example implemententation... I would recommend still giving an option for players to use these passwords, just use this as a message warning. This example shows how to block newly created accounts from using ANY breached password.
- Copy the BreachCheckAPI.java file over to the utils folder
- Copy the commons-codec-1.15.jar library file over to your libs filder
- Add the commons-codec-1.15.jar library to your compiler / IDE
- Open the PlayerLoading.java file
- Find:
if (!file.exists()) {
return LoginResponses.NEW_ACCOUNT;
}
- Replace with
if (!file.exists()) {
BreachCheckAPI bca = new BreachCheckAPI();
bca.setPassword(player.getPassword());
return bca.isBreached() ? LoginResponses.LOGIN_COULD_NOT_COMPLETE : LoginResponses.NEW_ACCOUNT;
}
- Edit response 13 within your Client.java file (on your client) and change the message to resemble "Your password is too weak, use another password" or "This is a commonly used password, please use another".
- Finished product:
- You can also add this to the ::changepassword command as-well, refusing to allow the password to be changed (or warn)