I have a tough nut to crack. I'm working on hashing passwords for our network switches (because the alternative is plain-text passwords...). For people who would care about this; it's a huawei switch.
The easy part first
If I give Test1234
as password, the switch generates the following string: $1a$+p45S3\h1'$4YZLS]$j&K1cRI+a@}C~("Hu"Bqzq7bc;'T)/r)7$
If we break down the hash we get
$
<= start delimiter1a
<= unknown scheme to me (I know, 1 (md5), 2b(bcrypt), 5(SHA256) & 6(SHA512))$
+p45S3\h1'
<= the passwords are salted and this is it (high likelihood looking at other methods)$
4YZLS]$j&K1cRI+a@}C~("Hu"Bqzq7bc;'T)/r)7
<= which in all likelyhood is something in the lines of some_hash(salt + password), sosome_hash(+p45S3\h1' + Test1234)
. In earlier contacts, huawei told me "it is AES-256 enhanced", which seems a strange statement; also, I don't know "AES-256 enhanced"; even more, the output is always fixed length (total 56 bytes, just the hash is 40 bytes => 320 bits).$
<= final delimiter
I thought, by the length, it might've been RIPEMD320; but if I convert a resulting RIPEMD320 hash to ASCII I get garbled text, but I really don't know if that would be the right way forward anyway. (probably not because ASCII has all sorts of "strange" characters anyway).
Any insights or help on the matter is more than welcome!