精华内容
下载资源
问答
  • 腾讯TC3 v3鉴权比较复杂,当然这是相对于Delphi下而言,其实在Python下直接使用SDK要省事儿的多。本文的源代码就不贴了,需要的可以去原文下载。 一、TC3鉴权单元 为了方便复用,写了一个TC3鉴权单元文件:TC3...

    参考了高文杰先生的代码,结合自己的学习增添了最新TC3-HMAC-SHA256 v3版本的接口。

     腾讯云的TC3 v3鉴权比较复杂,当然这是相对于Delphi下而言,其实在Python下直接使用SDK要省事儿的多。本文的源代码就不贴了,需要的可以去原文下载。

    一、TC3鉴权单元

    为了方便复用,写了一个TC3鉴权单元文件:TC3_Authorization.pas

    {
    2021-02-15
    广西南宁
    张旭州
    腾讯云 TC3-HMAC-SHA256 生成鉴权数据
    }
    
    unit TC3_Authorization;
    
    interface
    
    uses
      System.SysUtils, System.hash, System.NetEncoding, System.DateUtils;
    
    { -------------------------------------------------------------------------------
      过程名:    genTC3Auth
      作者:      张旭州
      日期:      2021.02.15
      参数:      SecretKey, SecretId, sDomain, bodyJSON, Service: string
      参数说明: AccessKeyID,AccessKeySecret,域名, 待发送的数据主体JSON, 服务ocr, cvm
      返回值:    string
      
      参数参考如下:
        SecretKey := '您的腾讯云SecretKey';
        SecretId := '您的腾讯云SecretId';
        Service := 'sms'  //发送短信
        sDomain := 'sms.tencentcloudapi.com'   //短信发送的域名
    
      ------------------------------------------------------------------------------- }
    function genTC3Auth(SecretKey, SecretId, sDomain, bodyJSON, Service: string): string;
    
    implementation
    
    
    function DateTimeToUnix(const AValue: TDateTime): Int64;
    // 日期转Unix时间戳
    begin
      Result := System.DateUtils.DateTimeToUnix(AValue) - 8 * 60 * 60;
    end;
    
    //腾讯云TC3 V3签名鉴权
    function genTC3Auth(SecretKey, SecretId, sDomain, bodyJSON, Service: string): string;
    var
      httpRequestMethod: string; // = "POST";
      canonicalUri: string; //= "/";
      canonicalQueryString: string; //= "";
      canonicalHeaders: string; // = "content-type:application/json; charset=utf-8\n" + "host:" + host + "\n";
      signedHeaders: string; //= "content-type;host";
      SecretDate, SecretService, SecretSigning, Signature: TBytes;
      StringToSign, payload, CanonicalRequest, HashedRequestPayload, HashedCanonicalRequest: string;
      sDate,timestamp : string;
      Authorization, CredentialScope : string;
    begin
      sDate := FormatDateTime('YYYY-MM-DD', now());
      timestamp := DateTimeToUnix(now).ToString;
      httpRequestMethod := 'POST';
      canonicalUri := '/';
      canonicalQueryString := '';
      canonicalHeaders := 'content-type:application/json' + #10
          + 'host:' + sDomain + #10;
      signedHeaders := 'content-type;host';
    
      payload := bodyJSON;
      //待发送的数据的哈希值:
      HashedRequestPayload := THashSHA2.GetHashString(payload);
    
      //拼接规范请求串
      CanonicalRequest := httpRequestMethod + #10
          + canonicalUri + #10
          + canonicalQueryString + #10
          + canonicalHeaders + #10
          + signedHeaders + #10
          + HashedRequestPayload;
    
      //计算派生签名密钥
      SecretDate := THashSHA2.GetHMACAsBytes(sDate, TEncoding.utf8.GetBytes('TC3' + SecretKey));
      SecretService := THashSHA2.GetHMACAsBytes(Service, SecretDate);
      SecretSigning := THashSHA2.GetHMACAsBytes('tc3_request', SecretService);
    
      //规范请求串的哈希值
      HashedCanonicalRequest := THashSHA2.GetHashString(CanonicalRequest);
      //组装待签名字符串
      StringToSign := 'TC3-HMAC-SHA256' + #10
          + timestamp + #10
          + sDate + '/' + Service + '/tc3_request' + #10
          + HashedCanonicalRequest;
      //计算签名
      Signature := THashSHA2.GetHMACAsBytes(Bytesof(StringToSign), SecretSigning);
    //  Application.MessageBox(PChar(THash.DigestAsString(Signature)),
    //      '提示', MB_OK + MB_ICONINFORMATION + MB_TOPMOST);
    
      CredentialScope := sDate + '/' + Service + '/tc3_request';
      //拼接 Authorization
      Authorization :=
        'TC3-HMAC-SHA256' + ' ' +
        'Credential=' + SecretId + '/' + CredentialScope + ', ' +
        'SignedHeaders=' + SignedHeaders + ', ' +
        'Signature=' + StringReplace(PChar(THash.DigestAsString(Signature)), Chr(13) + Chr(10), '',
        [rfReplaceAll]);
    
      Result := Authorization;
    end;
    
    end.

    二、短信发送模块

    在implementation下 uses
     Unit2, TC3_Authorization;

    procedure TForm1.btn_tc3_sendClick(Sender: TObject);
    var
      strMobile, SecretKey, SecretId,sdkappid,sign, params, tpl_id, strjson:string;
      tc3 : string;
      url : string;
      http : TIdHTTP;
      jsonToSend : TStringStream;
      Aresult:string;
      //申明变量
      Root:TJSONObject;    //uses System.JSON;
      jsonArray: TJSONArray; // JSON数组变量
      list : TStringList;
      i : Integer;
      phoneSet : string;
    
    begin
      list := TStringList.Create;
      list.CommaText := edt_strMobile.Text;
      for i := 0 to list.Count -1  do
      begin
        phoneSet := phoneSet + '"86' + list[i] + '",'
      end;
    
      strMobile := phoneSet.Remove(Length(phoneSet)-1);
      list.Free;
    
      SecretKey := '您的Key';
      SecretId := '您的ID';
      sdkappid := edt_sdkappid.Text;
      sign := edt_sign.Text;
      params := edt_params.Text;
      tpl_id := edt_tpl_id.Text;
    
      strjson := '{'
      + '"PhoneNumberSet":['
      + strMobile
      + '],'
      + '"TemplateParamSet":' + params
      + ','
      + '"TemplateID":"'
      + tpl_id
      + '",'
      + '"SmsSdkAppid":"'
      + sdkappid
      + '",'
      + '"Sign":"'
      + sign
      +'"}';
    
      tc3 := TC3_Authorization.genTC3Auth(SecretKey, SecretId, 'sms.tencentcloudapi.com',
         strjson, 'sms');
      url := 'https://sms.tencentcloudapi.com/';
      http := TIdHttp.Create(nil);
      http.HandleRedirects := True;
      http.ReadTimeout := 3000;
      http.Request.ContentType := 'application/json';//设置内容类型为json
    
      jsonToSend := TStringStream.Create(strjson, TEncoding.UTF8);
      jsonToSend.Position := 0;//将流位置置为0
      http.Request.CustomHeaders.Clear;
      http.Request.CustomHeaders.AddValue('Authorization', ' ' + tc3);
      http.Request.CustomHeaders.AddValue('Content-Type', ' application/json');
      http.Request.CustomHeaders.AddValue('Host', ' sms.tencentcloudapi.com');
      http.Request.CustomHeaders.AddValue('X-TC-Action', ' SendSms');
      http.Request.CustomHeaders.AddValue('X-TC-Timestamp', ' ' + gwj_DateTimeToUnix(now).ToString);
      http.Request.CustomHeaders.AddValue('X-TC-Version', ' 2019-07-11');
    
      http.Request.AcceptCharSet := 'UTF-8';
      http.Request.AcceptEncoding := 'UTF-8';
      http.Request.AcceptLanguage := 'UTF-8';
      http.Request.CharSet := 'UTF-8';
    //  http.HTTPOptions := IdHTTP.HTTPOptions + [hoKeepOrigProtocol];
    
      Aresult := http.Post(url, jsonToSend);//用MEMO控件接收POST后的数据返回
      Aresult := UnicodeToChinese(Aresult);
      Memo1.Text := Aresult;
      jsonToSend.free;
      http.free;
    
      //发送成功的示例
      //{"Response":{"SendStatusSet":[{"SerialNo":"2019:2892974270720676287","PhoneNumber":"+8613377131696","Fee":1,"SessionContext":"","Code":"Ok","Message":"send success","IsoCode":"CN"}],"RequestId":"b2e1fdcb-e877-4bbe-89cc-e7cae7cb567d"}}
    
      Root:= TJSONObject.ParseJSONValue(Trim(Aresult)) as TJSONObject;   //uses System.JSON;
      Root := Root.GetValue('Response') as TJSONObject;
      jsonArray := Root.GetValue('SendStatusSet') as TJSONArray ;
    
      Root := jsonArray.Get(0) as TJSONObject; //第一个号码结果
    
      edt_result.Text := Root.GetValue('Code').Value;
      edt_errmsg.Text := Root.GetValue('Message').Value;
      edt_ext.Text := Root.GetValue('SessionContext').Value;
    end;

     

    展开全文
  • Linux TC上安装华为客户端,运行AccessClient_x64lnx.run安装脚本,报错“ The tc does not have the basic ability。 解决方法 这个问题实际上是校验tc出错了,但实际上,我们不需要校验tc,所以解决方法就是跳过...

    Linux UbuntuTC 安装HDP客户端报错“The tc does not have the basic ability

    问题现象

    Linux TC上安装华为云客户端,运行AccessClient_x64lnx.run安装脚本,报错“ The tc does not have the basic ability。

    解决方法

    这个问题实际上是校验tc出错了,但实际上,我们不需要校验tc,所以解决方法就是跳过校验tc。

    运行AccessClient_x64lnx.run安装脚本后,会解压一些文件到当前目录的FusionAccess_Client子目录下面,也会解压一些文件在/tmp/HDPTempFiles目录下。

    1. 进入FusionAccess_Client下,把run.sh中的第3步脚本全部删除,以免它再次解压文件,覆盖了我们修改的脚本。

    2. 修改文件/tmp/HDPTempFiles/install.sh,搜索basic,在前面添加一行命令,把checkability赋值为0. 再查找“have the basic ability”这一行,把后面的checkability = 1 和 return 1两行注释掉。

    3. 进入目录/custom/fusionaccess/Client_for_linux_x64_v1.6.50005/FusionAccess_Client,把该目录下的所有文件打包成一个压缩文件,文件名为AccessClient_soft.tar.gz。然后再压缩一次。
      tar zcvf AccessClient_soft.tar.gz *
      tar zcvf AccessClient.tar.gz AccessClient_soft.tar.gz

    4. 重新打成run包,并运行安装命令。
      echo …/run.sh AccessClient.tar.gz > FusionAccessClient_x64.run
      chmod a+x FusionAccessClient_x64.run

     ./FusionAccessClient_x64.run  disable-reboot
    
    1. 命令运行后,检查/usr/local/目录下是否有HDPClient生成。

    客户端下载:https://download.csdn.net/download/weixin_45357522/14079102

    展开全文
  • JS调用腾讯 OCR 分享一下,之前在项目里调用ocr的经验, 第一步 npm install sha256 npm install crypto-js 第二步 import HmacSHA256 from ‘crypto-js/hmac-sha256’; import Hex from ‘crypto-js/enc-hex’; ...

    JS调用腾讯云 OCR

    分享一下,之前在项目里调用ocr的经验,

    第一步
    npm install sha256
    npm install crypto-js

    第二步
    import HmacSHA256 from ‘crypto-js/hmac-sha256’;
    import Hex from ‘crypto-js/enc-hex’;
    import sha256 from ‘crypto-js/sha256’;
    import util from ‘./util.js’

    const service = “ocr”;
    const host = “ocr.tencentcloudapi.com”;
    const region = “ap-guangzhou”;
    const action = “IDCardOCR”;
    const version = “2018-11-19”;
    const algorithm = “TC3-HMAC-SHA256”;
    const HTTPRequestMethod = ‘POST’;

    const tencentcloudOcrUrl = “https://ocr.tencentcloudapi.com”;

    function productAuthorization(jsonData,timeStamp) {
    // 第一步
    // HTTP 请求方法(GET、POST )本示例中为 GET;
    // let curTimeStamp = timeStamp * 1000;
    let date = new Date().toISOString().substr(0,10);
    console.log("timeStamp = “+timeStamp +” date : "+date);
    // URI 参数,API 3.0 固定为正斜杠(/)
    let CanonicalURI = ‘/’;
    // CanonicalQueryString:发起 HTTP 请求 URL 中的查询字符串,对于 POST 请求,固定为空字符串,对于 GET 请求,则为 URL 中问号(?)后面的字符串内容,本示例取值为:Limit=10&Offset=0。注意:CanonicalQueryString 需要经过 URL 编码。
    let CanonicalQueryString = ‘’;
    // 参与签名的头部信息,至少包含 host 和 content-type 两个头部,也可加入自定义的头部参与签名以提高自身请求的唯一性和安全性。拼接规则:1)头部 key 和 value 统一转成小写,并去掉首尾空格,按照 key:value\n 格式拼接;2)多个头部,按照头部 key(小写)的字典排序进行拼接。此例中为:content-type:application/x-www-form-urlencoded\nhost:cvm.tencentcloudapi.com\n
    let CanonicalHeaders = “content-type:application/json\n” + “host:” + host + “\n”;
    // 参与签名的头部信息,说明此次请求有哪些头部参与了签名,和 CanonicalHeaders 包含的头部内容是一一对应的。content-type 和 host 为必选头部。拼接规则:1)头部 key 统一转成小写;2)多个头部 key(小写)按照字典排序进行拼接,并且以分号(;)分隔。此例中为:content-type;host
    let SignedHeaders = ‘content-type;host’;
    // 请求正文的哈希值,计算方法为 Lowercase(HexEncode(Hash.SHA256(RequestPayload))),对 HTTP 请求整个正文 payload 做 SHA256 哈希,然后十六进制编码,最后编码串转换成小写字母。注意:对于 GET 请求,RequestPayload 固定为空字符串,对于 POST 请求,RequestPayload 即为 HTTP 请求正文 payload。
    let jsonStr = JSON.stringify(jsonData);
    // console.log("jsonStr = "+jsonStr);
    // Lowercase(HexEncode(Hash.SHA256(RequestPayload)))
    let HashedRequestPayload = sha256(jsonStr);
    console.log(“HashedRequestPayload = “+HashedRequestPayload+” -----”+JSON.stringify(HashedRequestPayload));

    // 拼接规范请求串
    let CanonicalRequest =
    HTTPRequestMethod + ‘\n’ +
    CanonicalURI + ‘\n’ +
    CanonicalQueryString + ‘\n’ +
    CanonicalHeaders + ‘\n’ +
    SignedHeaders + ‘\n’ +
    HashedRequestPayload;
    console.log(‘完成第一步’+CanonicalRequest);

    // 第二步
    // 签名算法,目前固定为 TC3-HMAC-SHA256;
    let Algorithm = ‘TC3-HMAC-SHA256’;
    // 请求时间戳,即请求头部的 X-TC-Timestamp 取值,如上示例请求为 1539084154;
    let RequestTimestamp = timeStamp;
    // 凭证范围,格式为 Date/service/tc3_request,包含日期、所请求的服务和终止字符串(tc3_request)。Date 为 UTC 标准时间的日期,取值需要和公共参数 X-TC-Timestamp 换算的 UTC 标准时间日期一致;service 为产品名,必须与调用的产品域名一致,例如 cvm。如上示例请求,取值为 2018-10-09/cvm/tc3_request;
    let CredentialScope = date + “/” + service + “/” + “tc3_request”;
    // 前述步骤拼接所得规范请求串的哈希值,计算方法为 Lowercase(HexEncode(Hash.SHA256(CanonicalRequest)))。
    let HashedCanonicalRequest = sha256(CanonicalRequest);
    let StringToSign =
    Algorithm + ‘\n’ +
    RequestTimestamp + ‘\n’ +
    CredentialScope + ‘\n’ +
    HashedCanonicalRequest;
    console.log(‘完成第二步’,StringToSign);

    // 第三步
    // 原始的 SecretKey;
    let SecretKey = "SecretKey ";
    // Date:即 Credential 中的 Date 字段信息,如上示例,为2018-10-09;
    let SecretDate = HmacSHA256(date,“TC3” + SecretKey);
    // Service:即 Credential 中的 Service 字段信息,如上示例,为 cvm;
    let SecretService = HmacSHA256(service,SecretDate);
    // SecretSigning:即以上计算得到的派生签名密钥;
    let SecretSigning = HmacSHA256(“tc3_request”,SecretService);
    // StringToSign:即步骤2计算得到的待签名字符串;
    let Signature = Hex.stringify(HmacSHA256(StringToSign,SecretSigning));
    console.log(‘完成第三步’,Signature);

    // 第四步
    // 签名方法,固定为 TC3-HMAC-SHA256;
    // let Algorithm = ‘TC3-HMAC-SHA256’;
    // SecretId:密钥对中的 SecretId;
    let SecretId = 'SecretId ';
    // let Authorization =
    // Algorithm + ’ ’ +
    // ‘Credential=’ + SecretId + ‘/’ + CredentialScope + ', ’ +
    // ‘SignedHeaders=’ + SignedHeaders + ', ’
    // ‘Signature=’ + Signature;
    let Authorization =
    Algorithm + ’ ’ +
    ‘Credential=’ + SecretId + ‘/’ + CredentialScope + ', ’ +
    ‘SignedHeaders=’ + SignedHeaders + ', '+
    ‘Signature=’ + Signature
    console.log(‘完成第四步’,Authorization);
    return Authorization;
    }

    // export default {
    // //TODO 加密数据
    // uni.getNetworkType({
    // success:function(res){
    // console.log("request getNetworkType = "+res.networkType);
    // if(res.networkType == ‘none’){
    // uni.showToast({
    // title:‘无网络,请检查网络设置’,
    // position:‘middle’,
    // icon:‘none’
    // })
    // }
    // }
    // })

    // }

    export function requestTecentCloud(data){
    var date = new Date();
    // console.log("requestTecentCloud date.getTimezoneOffset() = "+date.getTimezoneOffset());
    // var timezoneOffset = date.getTimezoneOffset();
    let timeStamp = Math.round(new Date().getTime()/1000);
    let authorization= productAuthorization(data,timeStamp);
    var config = {
    url: tencentcloudOcrUrl, //仅为示例,并非真实接口地址。
    data: data,
    method:‘POST’,
    header: {
    ‘Authorization’ : authorization,
    ‘Content-Type’ : ‘application/json’,
    ‘Host’ : ‘ocr.tencentcloudapi.com’,
    ‘X-TC-Action’ : ‘IDCardOCR’,
    ‘X-TC-Version’ : ‘2018-11-19’,
    ‘X-TC-Timestamp’ : timeStamp,
    ‘X-TC-Region’ : ‘ap-guangzhou’
    },
    success() {},
    fail() {},
    complete() {}
    }
    return new Promise((resolve, reject) => {
    config.complete = (response) => {
    let statusCode = response.statusCode
    // 统一的响应日志记录
    // _reslog(response);
    // _resResponse(response);
    // console.log("ocrutil response ===== "+JSON.stringify(response));
    if (statusCode === 200) { //成功
    resolve(response);
    } else {
    reject(response)
    }
    }
    // 统一的请求日志记录
    // _reqlog(_config)
    uni.request(config);
    });
    // uni.showLoading({
    // title:‘正在识别中,请稍后’
    // })
    // uni.request({
    // url: tencentcloudOcrUrl, //仅为示例,并非真实接口地址。
    // data: data,
    // method:‘POST’,
    // header: {
    // ‘Authorization’ : authorization,
    // ‘Content-Type’ : ‘application/json’,
    // ‘Host’ : ‘ocr.tencentcloudapi.com’,
    // ‘X-TC-Action’ : ‘IDCardOCR’,
    // ‘X-TC-Version’ : ‘2018-11-19’,
    // ‘X-TC-Timestamp’ : timeStamp,
    // ‘X-TC-Region’ : ‘ap-guangzhou’
    // },
    // success: (res) => {
    // uni.hideLoading();
    // console.log(“请求成功 返回结果”+JSON.stringify(res));
    // },
    // fail: (res) => {
    // uni.hideLoading();
    // console.log(“请求失败 返回结果”+JSON.stringify(res));
    // }
    // });
    }

    第三步
    需要注意的问题,能看到我们在调用生成签名信息方法的时候productAuthorization
    已经传入了一个时间戳,为什么又要在方法内let date = new Date().toISOString().substr(0,10);
    获取一个时间对象,
    之所以这样做是因为如果直接采用最开始传入的时间戳会有一个问题,在凌晨的时候,我们的时区因为是东八区所以在凌晨12-8点前,会比格林威治时间快8个小时,所以当我们直接用new date生成的yyyy-MM-dd格式的日期信息传入接口,腾讯云接口会校验失败,所以这里CredentialScope 必须要采用另一种 Date().toISOString() 生成的格式传入接口

    参考引用如下

    https://www.cnblogs.com/ChineseLiao/p/10181686.html

    展开全文
  • 哪位大哥有华为桌面对于TC的兼容性列表? 或者说 只有是TC都能兼容我们的桌面,不管哪个厂家的TC都行。
  • WIN-TC是一个TC2 WINDOWS平台开发工具。由 "TC256专题站"(http://tc256.cn.st) 与 "唯C世界"(http://www.vcok.com) 联合发布。该软件使用TC2为内核,提供WINDOWS平台的开发界面,因此也就支持WINDOWS平台下的功能,...
  • 腾讯·短信·TC3-HMAC-SHA256API3.0签名V3算法带发送例子
  • TC接入百宝注册码系统V2示例教程  注册码PC版的接入提供了2种方式:DLL版与COM版。在这个教程里,我将以COM版来介绍接入的方法,毕竟COM组件在其他的语言里,也能得到很好支持。接口的详细说明,可以下载相应的...

     TC接入百宝云注册码系统V2示例教程


           注册码PC版的接入提供了2种方式:DLL版与COM版。在这个教程里,我将以COM版来介绍接入的方法,毕竟COM组件在其他的语言里,也能得到很好支持。接口的详细说明,可以下载相应的文档进行查看,这里就不再一一描述了。本套免费的系统亲测能跑80个左右的用户。用户在80~2000之间自己升级配置,安装高级版,高级版是直接开源管理端:

    步骤1:管理端接入步骤

    一、进入应用中心安装注册码系统v2


    二、安装完之后打开云应用,在云应用管理里面下载客户端示例



    三、打开注册码管理端软件,之后在项目名称管理里创建一个新项目。

     


    四、创建项目完成之后,在注册码管理界面,为新创建的项目创建注册码,以便后面的代码里使用。

    步骤2:TC代码接入步骤

    第一步 插件的注册与对象创建

    COM插件在调用的时候,一定要先注册COM插件到系统,之后在创建操作COM组件接口的对象。

     

    第二步 初始化数据

    调用COM插件里的全局初始化 InitDll 函数,来初始化插件,此接口有2个参数,第一个是云应用的token,第二个为项目名称。


    项目名称与管理端的项目名称管理里面内容对应即可,如下图:


    因为注册码的生成是根据项目名称来创建的,所以InitDll的项目名称必须与上图的项目名称一致。

     

    第三步 注册码登录验证

    1、推荐大家使用:注册码登陆自动验证 LoginRegCodeAuto 接口,此接口在登录验证成功之后,内部会自动开启心跳线程,处理注册码到期、冻结等问题。这样使用者就不需要去关心心跳验证的问题了。


    2、如果大家调用的是:注册码登陆 LoginRegCode 函数,那么心跳就需要自己去完成了。这个心跳,其实就是自己开一个线程,每隔一段时间调用一次:获取注册码剩余时间 GetRegCodeTime 函数,来验证软件的使用权限。


    以上三步,即可实现软件的注册码登录与验证操作了。


    步骤3:系统防攻击放破解设置

    第一:系统自带防攻击,有需要自己可设置

     


    第二:系统自带防破解,有需要自己可设置

    因为版本在不断更新,所以建议大家在接入前先去百宝云官方看下,有没有最新版本和最新说明!

    注册码系统V2下载:http://www.baibaoyun.com/index.php?index/info&id=19

    展开全文
  •  本源码中分为百宝服务器端代码、TC客户端代码、TC注册码管理端代码。  百宝服务器端主要是负责注册码登陆验证、试用验证、注册码管理等等操作。  TC客户端是试用登陆或者注册码登陆。  TC注册码管理端是对...
  • 【Delphi 腾讯短信】使用腾讯最新的签名方法v3(TC3-HMAC-SHA256)。api接口文档https://cloud.tencent.com/document/product/382/38778
  • TC COM插件接入百宝注册码系统示例 接入之前请注意一下,这个免费的系统亲测能跑80个左右的用户。用户太多请安装升级版。TCDLL接入本系统分三步走: 一、首先安装好web网络验证系统,安装完之后打开应用。请注意下...
  • 百宝发布按键与TC作者专用的注册码系统付费升级版 为满各商业作者的需求,此次百宝注册码系统发布了升级版,升级后的版本比免费版新增以下功能: 1、支持 多项目管理 2、支持 安全策略配置,专门针对防破解的...
  • 系统拓扑:如图所示,公有平台分作管理网络和用户网络:管理网络用于管理者对整个平台的运维管理。用户网络为终端用户提供虚拟机访问入口和可用的带宽保证。根据上图结构和大家分享一下使用Iptables和TC实现...
  • 【delphi腾讯短信】使用腾讯最新的签名方法 v3 (TC3-HMAC-SHA256)
  • 倍福编程原版软件TC31-Full-Setup.3.1.4024.12百度地址.txt
  • 运用了百宝组件中login函数,以及TC中的回调函数,来实现了多个客户端在不同的地区做到实时的网络响应,类似QQ群,以及聊天室的功能 下面我们看下效果  1、发送公共消息 简单模块了右侧QQ群的在线列表的功能   ...
  • [TC] 百宝开源多项目自动更新V2.0

    千次阅读 2016-04-19 15:01:04
    之前红船开源了一款自动更新系统,没有提供TC的例子,而且自动更新器也只有简单的下载功能,具体的判断版本号等全部在外部,这就造成了一定的接入复杂度。SO! 新的自动更新出炉啦... 更新器采用C++编写,同样不依赖...
  • 百宝可以做什么?  有网络服务需求的用户,可以利用百宝快速制作自己的网络服务,极大降低自己的成本,只需要懂百宝脚本。服务器部署、维护、防攻击、用户人数扩增等各种业务,都交给百宝处理;  比如:  用...
  • 【百宝】---开发时代来临了  百宝可以做什么? 有网络服务需求的用户,可以利用百宝快速制作自己的网络服务,极大降低自己的成本,只需要懂百宝脚本。服务器部署、维护、防攻击、用户人数扩增等各种业务,都...
  • 由天地互连、下一代互联网国家...在3日下午的大会上,中国通信标准化协会TC3主席赵慧玲做了“网络化及NFV行业标准化进展”的主题演讲。 中国通信标准化协会TC3主席赵慧玲 以下为现场演讲实录: 赵慧玲:大家下午...
  • // 设置验证码长度、范围 $vCode = strval(rand(100000,999999)); //*********************************************************... 相关附件源码:腾讯·短信·TC3-HMAC-SHA256·API3.0签名V3.rar 五积分下载
  • 1、OTB2013和OTB2015数据集百度下载 链接:https://pan.baidu.com/s/1fWdXXsWYfHw44SqPEO3cng 提取码:1cw9 2、VOT2013-VOT2020数据集百度下载 链接:https://pan.baidu.com/s/1oJdgY5PpfN8Ep85i8nVmdQ ...
  • 百宝网络验证系统是一款集合验证,防破解,自动售卡,代理功能等等等等众多优点于一身的一款网络验证系统,自其发布之日起就受到了大家广泛的喜爱。  但是对于一些软件或者脚本作者来说,接入使用这一块,遇到了...
  • 快速自制TC注册码网络验证码系统

    千次阅读 2015-12-25 14:48:37
    自制TC网络验证:  用百宝制作自己的注册码系统,不仅可以极大降低自己的成本,还可以很有效的做防破解处理;  可以当做一个智能网盘,不仅可以存储文件和数据,还可以通过制作应用写自己的业务逻辑,和自己...
  • 华为 FusionAccess 桌面解决方案 安全技术白皮书 目 录 传统办公桌面安全问题及发展趋势 1 传统桌面安全之痛 1 桌面办公发展趋势 1 桌面安全威胁分析及安全框架 1 概述 1 桌面安全威胁分析 1 桌面安全框架 3...
  • 华为桌面

    2013-04-28 09:37:17
    华为桌面解决方案所具有的多项特性,在实践中...除此之外,TC瘦客户端的认证接入、加密传输等安全机制,保证了桌面系统的安全可靠。桌面系统天然具备信息安全的优势,这极大地保障了公司的核心技术资产。以前...
  •  有网络服务需求的用户,只需要懂百宝脚本语音,就可以利用百宝快速制作自己的网络服务,极大降低自己的成本。如:服务器部署、维护、防攻击、用户人数扩增等各种业务,都可以交给百宝处理;  以下举例百宝...
  • 华为云FusionAccess 8.0.1 桌面技术白皮书,华为云FusionAccess桌面是基于华为平台的一种虚拟桌面应用,通过在平台上部署FusionAccess桌面软件,使终端用户通过瘦客户端TC来访问跨平台的整个客户桌面。
  • ◆ 利用TC35678透过BLE传递要改变的标签数据并显示在电子纸 方案规格◆本方案使用了东芝自行开发之Scatternet service软件。当每台Price Tag一开机,会被事先指定成根节点(Root node)的Price Tag做为起点,接着陆续...
  •  经过官方不断开发更新,百宝已经实现注册码系统功能的整套服务,并且应用中心的免费应用都支持自动发卡功能,这样作者们不用做任何付费就可以先有收入来源,然后再根据用户自己的需求,来选择是否购买付费服务. ...
  • 百宝是一款服务器产品,专为快速打造个人云端服务器的应用产品.开发者无需关心服务器开发,维护乃至性能扩展,APP管理,百宝提供完善的全套服务.强大的第三方接口可以和任何开发语言对接,开发者无需变更自己熟悉...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 171
精华内容 68
关键字:

云tc