欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

注册机 (1千字)

注册机 (1千字)

//Note: only English characters allowed.
//        so you can't use your Chinese name :-(
#include <stdio.h>
#include <string.h>
long java_lang_String_hashCode(char *str);
void main(void)
{
    char Name[128];
    char Country[128];
    long NameCode, CountryCode, AllCode, Code;
    printf("KeyGen for NMI's Java Code Viewer 4.8.2.\n");
   
    printf("Input your name: ");
    gets(Name);
    printf("Input your country: ");
    gets(Country);
   
    NameCode    = java_lang_String_hashCode(Name);
    CountryCode = java_lang_String_hashCode(Country);
    AllCode    = java_lang_String_hashCode(strcat(Name, Country));
   
    Code = NameCode * CountryCode + AllCode;
    Code -= strlen(Name);
    if (Code < 0)
    {
        Code = -Code;
    }
    printf("You code: %lu\n", Code);
}
long java_lang_String_hashCode(char *str)
{
  int  k, len, edi,step;
  long result;
  if (str == NULL)
  {
      return 0;
  }
  result = 0;
  len = strlen(str);
   
  if (len < 0x10)
  {
      for (k = 0; k < len; k++)
      {
          result *= 37;
          result += (long)str[k] & 0xFF;
      }
  }
  else
  {
      k = 0;
      step = (len >> 3);
      edi = len;
      do
      {
          edi -= step;
          result *= 0x27;
          result += (long)str[k];
          k += step;         
      } while (edi
> 0);
  }
  return result;
}

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功