Skip to content

Commit c9e2d0b

Browse files
authored
Merge pull request #1481 from hashtopolis/1477-enhancement-add-hashtypes-included-by-hashcat-7
1477 enhancement add hashtypes included by hashcat 7
2 parents c0e6488 + a8b0bf5 commit c9e2d0b

File tree

5 files changed

+319
-8
lines changed

5 files changed

+319
-8
lines changed

ci/files/update-hashes.py

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
import requests
2+
import subprocess
3+
import json
4+
import sys
5+
import os
6+
import re
7+
8+
9+
class HashType:
10+
def __init__(self, hashType, description, salted, slowHash):
11+
self.hashType = hashType
12+
self.description = description
13+
self.salted = salted
14+
self.slowHash = slowHash
15+
16+
17+
url = "https://raw.githubusercontent.com/hashcat/hashcat/refs/tags/v7.1.1/docs/hashcat-example-hashes.md"
18+
binary = sys.argv[1] # The hashcat binary is the first argument
19+
if not os.path.isfile(binary):
20+
print("usage: python3 update-hashes.py <hashcat binary>")
21+
args = [binary, "-m", "PLACEHOLDER", "--exam", "--machine-readable", "--quiet"]
22+
new_hashtypes = []
23+
24+
response = requests.get(url)
25+
response.raise_for_status()
26+
27+
lines = response.text.splitlines()
28+
29+
auth_uri = 'http://localhost:8080/api/v2/auth/token'
30+
auth = ("admin", "hashtopolis") # default credentials
31+
r = requests.post(auth_uri, auth=auth)
32+
token = r.json()["token"]
33+
34+
headers = {
35+
'Authorization': 'Bearer ' + token
36+
}
37+
url = "http://localhost:8080/api/v2/ui/hashtypes/"
38+
print("Retrieving hashes from db please wait...")
39+
40+
for line in lines[4:]: # skip first 4 header lines
41+
splitted = line.split("|")
42+
if len(splitted) == 1: # table is finished
43+
break
44+
hashType = re.search(r"\[`?(\d+)`?\]", splitted[1]).group(1)
45+
description = splitted[2].strip().split("`")[1]
46+
print(description)
47+
r = requests.get(url + hashType, headers=headers)
48+
if (r.status_code != 200):
49+
args[2] = hashType
50+
hashcat_output = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
51+
data = json.loads(hashcat_output.stdout)
52+
slow_hash = data[hashType]["slow_hash"]
53+
salted = data[hashType]["is_salted"]
54+
new_hashtypes.append(HashType(hashType, description, salted, slow_hash))
55+
print("Finished retrieving hashes!")
56+
57+
print("Add the following to the update script:")
58+
print('if (!isset($PRESENT["PLACEHOLDER"])){')
59+
print(" $hashTypes = [")
60+
for hashType in new_hashtypes:
61+
print(f' new HashType( {hashType.hashType}, "{hashType.description}", {int(hashType.salted)}, {int(hashType.slowHash)}),')
62+
print(" ];")
63+
print(' foreach ($hashTypes as $hashtype) {')
64+
print(' $check = Factory::getHashTypeFactory()->get($hashtype->getId());')
65+
print(' if ($check === null) {')
66+
print(' Factory::getHashTypeFactory()->save($hashtype);')
67+
print(' }')
68+
print(' }')
69+
print(' $EXECUTED["PLACEHOLDER"] = true;')
70+
print('}')
71+
72+
print("Add the following to the install script:")
73+
for hashType in new_hashtypes:
74+
print(f" ({hashType.hashType}, '{hashType.description}', {int(hashType.salted)}, {int(hashType.slowHash)}),")
75+
76+
77+
print("Dont forgot to check if all hashtypes where salted = '1', are actually salted in a way that Hashtopolis understands!")

src/inc/Util.class.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,10 @@ public static function getGitCommit($hashOnly = false) {
192192
*/
193193
public static function checkAgentVersion($type, $version, $silent = false) {
194194
$qF = new QueryFilter(AgentBinary::BINARY_TYPE, $type, "=");
195+
if (Util::databaseColumnExists("AgentBinary", "type")) {
196+
// This check is needed for older updates when agentbinary column still got old 'type' name
197+
$qF = new QueryFilter("type", $type, "=");
198+
}
195199
$binary = Factory::getAgentBinaryFactory()->filter([Factory::FILTER => $qF], true);
196200
if ($binary != null) {
197201
if (Util::versionComparison($binary->getVersion(), $version) == 1) {

src/inc/apiv2/common/AbstractModelAPI.class.php

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,9 @@ protected function doFetch(string $pk, AbstractModelFactory $otherFactory = null
408408
if ($object === null) {
409409
throw new ResourceNotFoundError();
410410
}
411-
if ($otherFactory == null && $this->getSingleACL($this->getCurrentUser(), $object) === false) {
411+
$group = Factory::getRightGroupFactory()->get($this->getCurrentUser()->getRightGroupId());
412+
if ($group->getPermissions() !== 'ALL' && $otherFactory == null && $this->getSingleACL($this->getCurrentUser(),
413+
$object) === false) {
412414
throw new HttpForbidden("No access to this object!", 403);
413415
}
414416

@@ -614,13 +616,15 @@ public static function getManyResources(object $apiClass, Request $request, Resp
614616
/* Generate filters */
615617
$filters = $apiClass->getFilters($request);
616618
$qFs_Filter = $apiClass->makeFilter($filters, $apiClass);
617-
618-
$aFs_ACL = $apiClass->getFilterACL();
619-
if (isset($aFs_ACL[Factory::FILTER])) {
620-
$qFs_Filter = array_merge($aFs_ACL[Factory::FILTER], $qFs_Filter);
621-
}
622-
if (isset($aFs_ACL[Factory::JOIN])) {
623-
$aFs[Factory::JOIN] = $aFs_ACL[Factory::JOIN];
619+
$group = Factory::getRightGroupFactory()->get($apiClass->getCurrentUser()->getRightGroupId());
620+
if ($group->getPermissions() !== 'ALL') { // Only add permission filters when no admin user
621+
$aFs_ACL = $apiClass->getFilterACL();
622+
if (isset($aFs_ACL[Factory::FILTER])) {
623+
$qFs_Filter = array_merge($aFs_ACL[Factory::FILTER], $qFs_Filter);
624+
}
625+
if (isset($aFs_ACL[Factory::JOIN])) {
626+
$aFs[Factory::JOIN] = $aFs_ACL[Factory::JOIN];
627+
}
624628
}
625629

626630
if (count($qFs_Filter) > 0) {

src/install/hashtopolis.sql

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,8 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
338338
(1000, 'NTLM', 0, 0),
339339
(1100, 'Domain Cached Credentials (DCC), MS Cache', 1, 0),
340340
(1300, 'SHA-224', 0, 0),
341+
(1310, 'sha224($pass.$salt)', 1, 0),
342+
(1320, 'sha224($salt.$pass)', 1, 0),
341343
(1400, 'SHA256', 0, 0),
342344
(1410, 'sha256($pass.$salt)', 1, 0),
343345
(1411, 'SSHA-256(Base64), LDAP {SSHA256}', 0, 0),
@@ -372,21 +374,26 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
372374
(2600, 'md5(md5($pass))', 0, 0),
373375
(2611, 'vBulletin < v3.8.5', 1, 0),
374376
(2612, 'PHPS', 0, 0),
377+
(2630, 'md5(md5($pass.$salt))', 1, 0),
375378
(2711, 'vBulletin >= v3.8.5', 1, 0),
376379
(2811, 'IPB2+, MyBB1.2+', 1, 0),
377380
(3000, 'LM', 0, 0),
378381
(3100, 'Oracle H: Type (Oracle 7+), DES(Oracle)', 1, 0),
379382
(3200, 'bcrypt, Blowfish(OpenBSD)', 0, 0),
380383
(3500, 'md5(md5(md5($pass)))', 0, 0),
384+
(3610, 'md5(md5(md5($pass)).$salt)', 1, 0),
381385
(3710, 'md5($salt.md5($pass))', 1, 0),
382386
(3711, 'Mediawiki B type', 0, 0),
387+
(3730, 'md5($salt1.strtoupper(md5($salt2.$pass)))', 0, 0),
383388
(3800, 'md5($salt.$pass.$salt)', 1, 0),
384389
(3910, 'md5(md5($pass).md5($salt))', 1, 0),
385390
(4010, 'md5($salt.md5($salt.$pass))', 1, 0),
386391
(4110, 'md5($salt.md5($pass.$salt))', 1, 0),
387392
(4300, 'md5(strtoupper(md5($pass)))', 0, 0),
388393
(4400, 'md5(sha1($pass))', 0, 0),
389394
(4410, 'md5(sha1($pass).$salt)', 1, 0),
395+
(4420, 'md5(sha1($pass.$salt))', 1, 0),
396+
(4430, 'md5(sha1($salt.$pass))', 1, 0),
390397
(4500, 'sha1(sha1($pass))', 0, 0),
391398
(4510, 'sha1(sha1($pass).$salt)', 1, 0),
392399
(4520, 'sha1($salt.sha1($pass))', 1, 0),
@@ -405,8 +412,11 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
405412
(5500, 'NetNTLMv1-VANILLA / NetNTLMv1+ESS', 0, 0),
406413
(5600, 'NetNTLMv2', 0, 0),
407414
(5700, 'Cisco-IOS SHA256', 0, 0),
415+
(5720, 'Cisco-ISE Hashed Password (SHA256)', 0, 0),
408416
(5800, 'Samsung Android Password/PIN', 1, 0),
409417
(6000, 'RipeMD160', 0, 0),
418+
(6050, 'HMAC-RIPEMD160 (key = $pass)', 1, 0),
419+
(6060, 'HMAC-RIPEMD160 (key = $salt)', 1, 0),
410420
(6100, 'Whirlpool', 0, 0),
411421
(6211, 'TrueCrypt 5.0+ PBKDF2-HMAC-RipeMD160 + AES/Serpent/Twofish', 0, 1),
412422
(6212, 'TrueCrypt 5.0+ PBKDF2-HMAC-RipeMD160 + AES-Twofish/Serpent-AES/Twofish-Serpent', 0, 1),
@@ -431,6 +441,7 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
431441
(7100, 'OS X v10.8 / v10.9', 0, 1),
432442
(7200, 'GRUB 2', 0, 1),
433443
(7300, 'IPMI2 RAKP HMAC-SHA1', 1, 0),
444+
(7350, 'IPMI2 RAKP HMAC-MD5', 0, 0),
434445
(7400, 'sha256crypt, SHA256(Unix)', 0, 0),
435446
(7401, 'MySQL $A$ (sha256crypt)', 0, 0),
436447
(7500, 'Kerberos 5 AS-REQ Pre-Auth', 0, 0),
@@ -445,6 +456,7 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
445456
(8300, 'DNSSEC (NSEC3)', 1, 0),
446457
(8400, 'WBB3, Woltlab Burning Board 3', 1, 0),
447458
(8500, 'RACF', 0, 0),
459+
(8501, 'AS/400 DES', 0, 0),
448460
(8600, 'Lotus Notes/Domino 5', 0, 0),
449461
(8700, 'Lotus Notes/Domino 6', 0, 0),
450462
(8800, 'Android FDE <= 4.3', 0, 1),
@@ -471,6 +483,7 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
471483
(10410, 'PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #1', 0, 0),
472484
(10420, 'PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #2', 0, 0),
473485
(10500, 'PDF 1.4 - 1.6 (Acrobat 5 - 8)', 0, 0),
486+
(10510, 'PDF 1.3 - 1.6 (Acrobat 4 - 8) w/ RC4-40', 0, 1),
474487
(10600, 'PDF 1.7 Level 3 (Acrobat 9)', 0, 0),
475488
(10700, 'PDF 1.7 Level 8 (Acrobat 10 - 11)', 0, 0),
476489
(10800, 'SHA384', 0, 0),
@@ -498,6 +511,7 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
498511
(12000, 'PBKDF2-HMAC-SHA1', 0, 1),
499512
(12001, 'Atlassian (PBKDF2-HMAC-SHA1)', 0, 1),
500513
(12100, 'PBKDF2-HMAC-SHA512', 0, 1),
514+
(12150, 'Apache Shiro 1 SHA-512', 0, 1),
501515
(12200, 'eCryptfs', 0, 1),
502516
(12300, 'Oracle T: Type (Oracle 12+)', 0, 1),
503517
(12400, 'BSDiCrypt, Extended DES', 0, 0),
@@ -541,6 +555,7 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
541555
(13900, 'OpenCart', 1, 0),
542556
(14000, 'DES (PT = $salt, key = $pass)', 1, 0),
543557
(14100, '3DES (PT = $salt, key = $pass)', 1, 0),
558+
(14200, 'RACF KDFAES', 0, 1),
544559
(14400, 'sha1(CX)', 1, 0),
545560
(14500, 'Linux Kernel Crypto API (2.4)', 0, 0),
546561
(14600, 'LUKS 10', 0, 1),
@@ -564,12 +579,16 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
564579
(16300, 'Ethereum Pre-Sale Wallet, PBKDF2-HMAC-SHA256', 0, 1),
565580
(16400, 'CRAM-MD5 Dovecot', 0, 0),
566581
(16500, 'JWT (JSON Web Token)', 0, 0),
582+
(16501, 'Perl Mojolicious session cookie (HMAC-SHA256, >= v9.19)', 0, 0),
567583
(16600, 'Electrum Wallet (Salt-Type 1-3)', 0, 0),
568584
(16700, 'FileVault 2', 0, 1),
569585
(16800, 'WPA-PMKID-PBKDF2', 0, 1),
570586
(16801, 'WPA-PMKID-PMK', 0, 1),
571587
(16900, 'Ansible Vault', 0, 1),
572588
(17010, 'GPG (AES-128/AES-256 (SHA-1($pass)))', 0, 1),
589+
(17020, 'GPG (AES-128/AES-256 (SHA-512($pass)))', 0, 1),
590+
(17030, 'GPG (AES-128/AES-256 (SHA-256($pass)))', 0, 1),
591+
(17040, 'GPG (CAST5 (SHA-1($pass)))', 0, 1),
573592
(17200, 'PKZIP (Compressed)', 0, 0),
574593
(17210, 'PKZIP (Uncompressed)', 0, 0),
575594
(17220, 'PKZIP (Compressed Multi-File)', 0, 0),
@@ -595,6 +614,7 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
595614
(19000, 'QNX /etc/shadow (MD5)', 0, 1),
596615
(19100, 'QNX /etc/shadow (SHA256)', 0, 1),
597616
(19200, 'QNX /etc/shadow (SHA512)', 0, 1),
617+
(19210, 'QNX 7 /etc/shadow (SHA512)', 0, 1),
598618
(19300, 'sha1($salt1.$pass.$salt2)', 0, 0),
599619
(19500, 'Ruby on Rails Restful-Authentication', 0, 0),
600620
(19600, 'Kerberos 5 TGS-REP etype 17 (AES128-CTS-HMAC-SHA1-96)', 0, 1),
@@ -612,20 +632,24 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
612632
(20600, 'Oracle Transportation Management (SHA256)', 0, 0),
613633
(20710, 'sha256(sha256($pass).$salt)', 1, 0),
614634
(20711, 'AuthMe sha256', 0, 0),
635+
(20712, 'RSA Security Analytics / NetWitness (sha256)', 1, 0),
615636
(20720, 'sha256($salt.sha256($pass))', 1, 0),
637+
(20730, 'sha256(sha256($pass.$salt))', 1, 0),
616638
(20800, 'sha256(md5($pass))', 0, 0),
617639
(20900, 'md5(sha1($pass).md5($pass).sha1($pass))', 0, 0),
618640
(21000, 'BitShares v0.x - sha512(sha512_bin(pass))', 0, 0),
619641
(21100, 'sha1(md5($pass.$salt))', 1, 0),
620642
(21200, 'md5(sha1($salt).md5($pass))', 1, 0),
621643
(21300, 'md5($salt.sha1($salt.$pass))', 1, 0),
644+
(21310, 'md5($salt1.sha1($salt2.$pass))', 1, 0),
622645
(21400, 'sha256(sha256_bin(pass))', 0, 0),
623646
(21420, 'sha256($salt.sha256_bin($pass))', 1, 0),
624647
(21500, 'SolarWinds Orion', 0, 0),
625648
(21501, 'SolarWinds Orion v2', 0, 0),
626649
(21600, 'Web2py pbkdf2-sha512', 0, 0),
627650
(21700, 'Electrum Wallet (Salt-Type 4)', 0, 0),
628651
(21800, 'Electrum Wallet (Salt-Type 5)', 0, 0),
652+
(21900, 'md5(md5(md5($pass.$salt1)).$salt2)', 0, 0),
629653
(22000, 'WPA-PBKDF2-PMKID+EAPOL', 0, 0),
630654
(22001, 'WPA-PMK-PMKID+EAPOL', 0, 0),
631655
(22100, 'BitLocker', 0, 0),
@@ -636,6 +660,7 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
636660
(22500, 'MultiBit Classic .key (MD5)', 0, 0),
637661
(22600, 'Telegram Desktop App Passcode (PBKDF2-HMAC-SHA1)', 0, 0),
638662
(22700, 'MultiBit HD (scrypt)', 0, 1),
663+
(22800, 'Simpla CMS - md5($salt.$pass.md5($pass))', 1, 0),
639664
(22911, 'RSA/DSA/EC/OPENSSH Private Keys ($0$)', 0, 0),
640665
(22921, 'RSA/DSA/EC/OPENSSH Private Keys ($6$)', 0, 0),
641666
(22931, 'RSA/DSA/EC/OPENSSH Private Keys ($1, $3$)', 0, 0),
@@ -653,6 +678,7 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
653678
(23700, 'RAR3-p (Uncompressed)', 0, 0),
654679
(23800, 'RAR3-p (Compressed)', 0, 0),
655680
(23900, 'BestCrypt v3 Volume Encryption', 0, 0),
681+
(24000, 'BestCrypt v4 Volume Encryption', 0, 1),
656682
(24100, 'MongoDB ServerKey SCRAM-SHA-1', 0, 0),
657683
(24200, 'MongoDB ServerKey SCRAM-SHA-256', 0, 0),
658684
(24300, 'sha1($salt.sha1($pass.$salt))', 1, 0),
@@ -682,6 +708,7 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
682708
(26403, 'AES-256-ECB NOKDF (PT = $salt, key = $pass)', 0, 0),
683709
(26500, 'iPhone passcode (UID key + System Keybag)', 0, 0),
684710
(26600, 'MetaMask Wallet', 0, 1),
711+
(26610, 'MetaMask Wallet (short hash, plaintext check)', 0, 1),
685712
(26700, 'SNMPv3 HMAC-SHA224-128', 0, 0),
686713
(26800, 'SNMPv3 HMAC-SHA256-192', 0, 0),
687714
(26900, 'SNMPv3 HMAC-SHA384-256', 0, 0),
@@ -763,8 +790,88 @@ INSERT INTO `HashType` (`hashTypeId`, `description`, `isSalted`, `isSlowHash`) V
763790
(29543, 'LUKS v1 RIPEMD-160 + Twofish', 0, 1),
764791
(29600, 'Terra Station Wallet (AES256-CBC(PBKDF2($pass)))', 0, 1),
765792
(29700, 'KeePass 1 (AES/Twofish) and KeePass 2 (AES) - keyfile only mode', 0, 1),
793+
(29800, 'Bisq .wallet (scrypt)', 0, 1),
794+
(29910, 'ENCsecurity Datavault (PBKDF2/no keychain)', 0, 1),
795+
(29920, 'ENCsecurity Datavault (PBKDF2/keychain)', 0, 1),
796+
(29930, 'ENCsecurity Datavault (MD5/no keychain)', 0, 1),
797+
(29940, 'ENCsecurity Datavault (MD5/keychain)', 0, 1),
766798
(30000, 'Python Werkzeug MD5 (HMAC-MD5 (key = $salt))', 0, 0),
767799
(30120, 'Python Werkzeug SHA256 (HMAC-SHA256 (key = $salt))', 0, 0),
800+
(30420, 'DANE RFC7929/RFC8162 SHA2-256', 0, 0),
801+
(30500, 'md5(md5($salt).md5(md5($pass)))', 1, 0),
802+
(30600, 'bcrypt(sha256($pass))', 0, 1),
803+
(30601, 'bcrypt(HMAC-SHA256($pass))', 0, 1),
804+
(30700, 'Anope IRC Services (enc_sha256)', 0, 0),
805+
(30901, 'Bitcoin raw private key (P2PKH), compressed', 0, 0),
806+
(30902, 'Bitcoin raw private key (P2PKH), uncompressed', 0, 0),
807+
(30903, 'Bitcoin raw private key (P2WPKH, Bech32), compressed', 0, 0),
808+
(30904, 'Bitcoin raw private key (P2WPKH, Bech32), uncompressed', 0, 0),
809+
(30905, 'Bitcoin raw private key (P2SH(P2WPKH)), compressed', 0, 0),
810+
(30906, 'Bitcoin raw private key (P2SH(P2WPKH)), uncompressed', 0, 0),
811+
(31000, 'BLAKE2s-256', 0, 0),
812+
(31100, 'ShangMi 3 (SM3)', 0, 0),
813+
(31200, 'Veeam VBK', 0, 1),
814+
(31300, 'MS SNTP', 0, 0),
815+
(31400, 'SecureCRT MasterPassphrase v2', 0, 0),
816+
(31500, 'Domain Cached Credentials (DCC), MS Cache (NT)', 1, 1),
817+
(31600, 'Domain Cached Credentials 2 (DCC2), MS Cache 2, (NT)', 0, 1),
818+
(31700, 'md5(md5(md5($pass).$salt1).$salt2)', 1, 0),
819+
(31800, '1Password, mobilekeychain (1Password 8)', 0, 1),
820+
(31900, 'MetaMask Mobile Wallet', 0, 1),
821+
(32000, 'NetIQ SSPR (MD5)', 0, 1),
822+
(32010, 'NetIQ SSPR (SHA1)', 0, 1),
823+
(32020, 'NetIQ SSPR (SHA-1 with Salt)', 0, 1),
824+
(32030, 'NetIQ SSPR (SHA-256 with Salt)', 0, 1),
825+
(32031, 'Adobe AEM (SSPR, SHA-256 with Salt)', 0, 1),
826+
(32040, 'NetIQ SSPR (SHA-512 with Salt)', 0, 1),
827+
(32041, 'Adobe AEM (SSPR, SHA-512 with Salt)', 0, 1),
828+
(32050, 'NetIQ SSPR (PBKDF2WithHmacSHA1)', 0, 1),
829+
(32060, 'NetIQ SSPR (PBKDF2WithHmacSHA256)', 0, 1),
830+
(32070, 'NetIQ SSPR (PBKDF2WithHmacSHA512)', 0, 1),
831+
(32100, 'Kerberos 5, etype 17, AS-REP', 0, 1),
832+
(32200, 'Kerberos 5, etype 18, AS-REP', 0, 1),
833+
(32300, 'Empire CMS (Admin password)', 1, 0),
834+
(32410, 'sha512(sha512($pass).$salt)', 1, 0),
835+
(32420, 'sha512(sha512_bin($pass).$salt)', 1, 0),
836+
(32500, 'Dogechain.info Wallet', 0, 1),
837+
(32600, 'CubeCart (whirlpool($salt.$pass.$salt))', 1, 0),
838+
(32700, 'Kremlin Encrypt 3.0 w/NewDES', 0, 1),
839+
(32800, 'md5(sha1(md5($pass)))', 0, 0),
840+
(32900, 'PBKDF1-SHA1', 1, 1),
841+
(33000, 'md5($salt1.$pass.$salt2)', 1, 0),
842+
(33100, 'md5($salt.md5($pass).$salt)', 1, 0),
843+
(33300, 'HMAC-BLAKE2S (key = $pass)', 1, 0),
844+
(33400, 'mega.nz password-protected link (PBKDF2-HMAC-SHA512)', 0, 1),
845+
(33500, 'RC4 40-bit DropN', 0, 0),
846+
(33501, 'RC4 72-bit DropN', 0, 0),
847+
(33502, 'RC4 104-bit DropN', 0, 0),
848+
(33600, 'RIPEMD-320', 0, 0),
849+
(33650, 'HMAC-RIPEMD320 (key = $pass)', 1, 0),
850+
(33660, 'HMAC-RIPEMD320 (key = $salt)', 1, 0),
851+
(33700, 'Microsoft Online Account (PBKDF2-HMAC-SHA256 + AES256)', 0, 1),
852+
(33800, 'WBB4 (Woltlab Burning Board) [bcrypt(bcrypt($pass))]', 0, 1),
853+
(33900, 'Citrix NetScaler (PBKDF2-HMAC-SHA256)', 0, 1),
854+
(34000, 'Argon2', 0, 1),
855+
(34100, 'LUKS v2 argon2 + SHA-256 + AES', 0, 1),
856+
(34200, 'MurmurHash64A', 1, 0),
857+
(34201, 'MurmurHash64A (zero seed)', 0, 0),
858+
(34211, 'MurmurHash64A truncated (zero seed)', 0, 0),
859+
(34300, 'KeePass (KDBX v4)', 0, 1),
860+
(34400, 'sha224(sha224($pass))', 0, 0),
861+
(34500, 'sha224(sha1($pass))', 0, 0),
862+
(34600, 'MD6 (256)', 0, 0),
863+
(34700, 'Blockchain, My Wallet, Legacy Wallets', 0, 0),
864+
(34800, 'BLAKE2b-256', 0, 0),
865+
(34810, 'BLAKE2b-256($pass.$salt)', 1, 0),
866+
(34820, 'BLAKE2b-256($salt.$pass)', 1, 0),
867+
(35000, 'SAP CODVN H (PWDSALTEDHASH) isSHA512', 1, 1),
868+
(35100, 'sm3crypt $sm3$, SM3 (Unix)', 1, 1),
869+
(35200, 'AS/400 SSHA1', 1, 0),
870+
(70000, 'Argon2id [Bridged: reference implementation + tunings]', 0, 1),
871+
(70100, 'scrypt [Bridged: Scrypt-Jane SMix]', 0, 1),
872+
(70200, 'scrypt [Bridged: Scrypt-Yescrypt]', 0, 1),
873+
(72000, 'Generic Hash [Bridged: Python Interpreter free-threading]', 0, 1),
874+
(73000, 'Generic Hash [Bridged: Python Interpreter with GIL]', 0, 1),
768875
(99999, 'Plaintext', 0, 0);
769876

770877
CREATE TABLE `LogEntry` (

0 commit comments

Comments
 (0)