attempt to speed up zhash

This commit is contained in:
Zontreck 2019-12-21 04:34:49 -07:00
parent 2555e5a868
commit 333af8a293

View file

@ -796,7 +796,10 @@ namespace Bot
public void CalculateKey(string K) public void CalculateKey(string K)
{ {
string valid = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ=.+/\\"; string valid = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ=.+/\\";
while(valid.Length < K.Length)
{
valid += valid;
}
StringBuilder tmp = new StringBuilder(_key); StringBuilder tmp = new StringBuilder(_key);
for (int i = 0; i < _key.Length; i++) for (int i = 0; i < _key.Length; i++)
@ -807,13 +810,7 @@ namespace Bot
MD5 MDHash = MD5.Create(); MD5 MDHash = MD5.Create();
for (int ii = 0; ii < K.Length; ii++) for (int ii = 0; ii < K.Length; ii++)
{ {
int ixi = ii; byte[] md5Data = MDHash.ComputeHash(Encoding.UTF8.GetBytes((K + i.ToString() + valid[i].ToString() + valid[ii].ToString()).ToCharArray()));
while(ixi >= valid.Length)
{
ixi = ixi / 2;
}
if (ixi < 0) ixi = valid[1];
byte[] md5Data = MDHash.ComputeHash(Encoding.UTF8.GetBytes((K + i.ToString() + valid[i].ToString() + valid[ixi].ToString()).ToCharArray()));
// Replace digit with MD5'd char from String K encoded alongside (i) // Replace digit with MD5'd char from String K encoded alongside (i)
StringBuilder hashData = new StringBuilder(); StringBuilder hashData = new StringBuilder();
foreach (byte b in md5Data) foreach (byte b in md5Data)