403Webshell
Server IP : 157.230.181.24  /  Your IP : 216.73.216.56
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux conductive 6.8.0-117-generic #117-Ubuntu SMP PREEMPT_DYNAMIC Tue May 5 19:26:24 UTC 2026 x86_64
User :  ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/vhosts/ceagon/open-oscar-server/wire/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/vhosts/ceagon/open-oscar-server/wire/user.go
package wire

import (
	"crypto/md5"
	"io"
)

// WeakMD5PasswordHash hashes password and authKey for AIM v3.5-v4.7.
//
//goland:noinspection ALL
func WeakMD5PasswordHash(pass, authKey string) []byte {
	hash := md5.New()
	_, _ = io.WriteString(hash, authKey)
	_, _ = io.WriteString(hash, pass)
	_, _ = io.WriteString(hash, "AOL Instant Messenger (SM)")
	return hash.Sum(nil)
}

// StrongMD5PasswordHash hashes password and authKey for AIM v4.8+.
//
//goland:noinspection ALL
func StrongMD5PasswordHash(pass, authKey string) []byte {
	top := md5.New()
	_, _ = io.WriteString(top, pass)
	bottom := md5.New()
	_, _ = io.WriteString(bottom, authKey)
	_, _ = bottom.Write(top.Sum(nil))
	_, _ = io.WriteString(bottom, "AOL Instant Messenger (SM)")
	return bottom.Sum(nil)
}

// RoastOSCARPassword roasts an OSCAR client password.
func RoastOSCARPassword(roastedPass []byte) []byte {
	var roastTable = []byte{
		0xF3, 0x26, 0x81, 0xC4, 0x39, 0x86, 0xDB, 0x92,
		0x71, 0xA3, 0xB9, 0xE6, 0x53, 0x7A, 0x95, 0x7C,
	}
	return roastPass(roastedPass, roastTable)
}

// RoastKerberosPassword roasts a Kerberos client password.
func RoastKerberosPassword(roastedPass []byte) []byte {
	var roastTable = []byte{
		0x76, 0x91, 0xc5, 0xe7, 0xd0, 0xd9, 0x95, 0xdd,
		0x9e, 0x2F, 0xea, 0xd8, 0x6B, 0x21, 0xc2, 0xbc,
	}
	return roastPass(roastedPass, roastTable)
}

// RoastOSCARJavaPassword roasts a Java OSCAR client password.
func RoastOSCARJavaPassword(roastedPass []byte) []byte {
	var roastTable = []byte{
		0xF3, 0xB3, 0x6C, 0x99, 0x95, 0x3F, 0xAC, 0xB6,
		0xC5, 0xFA, 0x6B, 0x63, 0x69, 0x6C, 0xC3, 0x9A,
	}
	return roastPass(roastedPass, roastTable)
}

// RoastTOCPassword roasts a TOC client password.
func RoastTOCPassword(roastedPass []byte) []byte {
	return roastPass(roastedPass, []byte("Tic/Toc"))
}

// roastPass toggles obfuscation/deobfuscates of roastedPass.
func roastPass(roastedPass []byte, roastTable []byte) []byte {
	clearPass := make([]byte, len(roastedPass))
	for i := range roastedPass {
		clearPass[i] = roastedPass[i] ^ roastTable[i%len(roastTable)]
	}
	return clearPass
}

Youez - 2016 - github.com/yon3zu
LinuXploit