Пример #1
0
        public bool GetCode(Image codeImg, out string realCode)
        {
            string       strCheckKey = uuCode.Default.CheckKey.Trim();
            MemoryStream ms          = new MemoryStream();

            try
            {
                codeImg.Save(ms, ImageFormat.Bmp);
                byte[] buffer = new byte[ms.Length];
                ms.Position = 0;
                ms.Read(buffer, 0, buffer.Length);
                ms.Flush();
                //新版本dll需要预先分配50个字节的空间,否则dll会崩溃!!!!
                StringBuilder res    = new StringBuilder(50);
                int           codeId = UUCodeWrapper.uu_recognizeByCodeTypeAndBytes(buffer, buffer.Length, uuCode.Default.CodeType, res);
                return(CheckResult(res.ToString(), out realCode));
                //string resultCode = CheckResult(res.ToString(), Convert.ToInt32(uuCode.Default.SoftID.Trim()), codeId, strCheckKey);
                //return resultCode;
                //m_codeID = codeId;
                //DelegateSetRtbText(string.Format("Code ID:{0}, 识别结果:{1}", codeId, resultCode.ToString()));
            }
            finally
            {
                ms.Close();
                ms.Dispose();
            }
        }
Пример #2
0
        private bool Login(ref StringBuilder info)
        {
            bool isLogin;

            /*	优优云DLL 文件MD5值校验
             *  用处:近期有不法份子采用替换优优云官方dll文件的方式,极大的破坏了开发者的利益
             *  用户使用替换过的DLL打码,导致开发者分成变成别人的,利益受损,
             *  所以建议所有开发者在软件里面增加校验官方MD5值的函数
             *  如何获取文件的MD5值,通过下面的GetFileMD5(文件)函数即返回文件MD5
             */

            string DLLPath = System.Environment.CurrentDirectory + "\\" + UUCodeWrapper.UUDLLName;
            string Md5     = GetFileMD5(DLLPath);
            //string AuthMD5 = "79dd7e248b7ec70e2ececa19b51c39c6";//作者在编写软件时内置的比对用DLLMD5值,不一致时将禁止登录,具体需要各位自己先获取使用的DLL的MD5验证字符串
            // if (Md5 != AuthMD5)
            //{
            //    MessageBox.Show("此软件使用的是UU云1.1.0.9动态链接库版DLL,与您目前软件内DLL版本不符,请前往http://www.uuwise.com下载更换此版本DLL");
            //     return;
            // }

            string u   = uuCode.Default.Uid.Trim();
            string p   = uuCode.Default.Pwd.Trim();
            int    res = UUCodeWrapper.uu_login(u, p);

            isLogin = res > 0;
            info.Append("登录返回结果:" + res.ToString() + "," + (isLogin ? "登陆成功" : "登录失败"));
            return(isLogin);
            //DelegateSetRtbText("登录返回结果:" + res.ToString() + "," + (isLogin ? "登陆成功" : "登录失败"));
        }
Пример #3
0
        private bool Init(ref StringBuilder info)
        {
            string strSoftID = uuCode.Default.SoftID.Trim();
            int    softId    = int.Parse(strSoftID);
            string softKey   = uuCode.Default.SoftKey1.Trim();
            Guid   guid      = Guid.NewGuid();
            string strGuid   = guid.ToString().Replace("-", "").Substring(0, 32).ToUpper();
            string DLLPath   = System.Environment.CurrentDirectory + "\\" + UUCodeWrapper.UUDLLName;
            //string DLLPath = "E:\\work\\UUWiseHelper 新版http协议\\输出目录\\UUWiseHelper.dll";
            string strDllMd5 = GetFileMD5(DLLPath);
            CRC32  objCrc32  = new CRC32();
            string strDllCrc = String.Format("{0:X}", objCrc32.FileCRC(DLLPath));
            //CRC不足8位,则前面补0,补足8位
            int crcLen = strDllCrc.Length;

            if (crcLen < 8)
            {
                int miss = 8 - crcLen;
                for (int i = 0; i < miss; ++i)
                {
                    strDllCrc = "0" + strDllCrc;
                }
            }
            //下面是软件id对应的dll校验key。在开发者后台-我的软件里面可以查的到。
            string strCheckKey = uuCode.Default.CheckKey.Trim().ToUpper();
            string yuanshiInfo = strSoftID + strCheckKey + strGuid + strDllMd5.ToUpper() + strDllCrc.ToUpper();

            info.Append(yuanshiInfo);
            //richTextBox1.Text += yuanshiInfo + "\n";
            string        localInfo   = MD5Encoding(yuanshiInfo);
            StringBuilder checkResult = new StringBuilder();

            UUCodeWrapper.uu_CheckApiSign(softId, softKey, strGuid, strDllMd5, strDllCrc, checkResult);
            string strCheckResult = checkResult.ToString();

            if (localInfo.Equals(strCheckResult))
            {
                info.Append("Dll校验成功!");
                return(true);
            }
            else
            {
                info.Append("Dll校验失败!服务器返回信息为" + strCheckResult + "本地校验信息为" + localInfo + "\n");
                return(false);
            }
        }
Пример #4
0
 public int GetLeftScore()
 {
     return(UUCodeWrapper.uu_getScore(uuCode.Default.Uid.Trim(), uuCode.Default.Pwd.Trim()));
 }