You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.4 KiB
109 lines
3.4 KiB
<?php
|
|
namespace fdd;
|
|
require_once "FddConfig.php";
|
|
/**
|
|
* 3DES加解密类
|
|
*/
|
|
class FddEncryption{
|
|
|
|
public $key =FddConfig::AppSecret;
|
|
|
|
/**
|
|
* 兼容PHP7.2 3DES加密
|
|
* @param $message
|
|
* @return string
|
|
*/
|
|
public function encrypt($message){
|
|
return $str = bin2hex(openssl_encrypt($message, "des-ede3", $this->key,1));
|
|
}
|
|
/**
|
|
* 通用msg_digest加密函数
|
|
* @param $param
|
|
* @param $enc
|
|
* @return string
|
|
*/
|
|
public static function GeneralDigest($param,$enc)
|
|
{
|
|
$value = $param->GetValues();
|
|
$md5Str = $param->GetTimestamp();
|
|
$sha1Str = FddConfig::AppSecret;
|
|
foreach ($enc as $k => $v)
|
|
{
|
|
switch ($k){
|
|
case "md5":
|
|
foreach ($v as $md5Key => $md5Value){
|
|
if(isset($value[$md5Value])){
|
|
$md5Str.= $value[$md5Value];
|
|
}
|
|
}
|
|
break;
|
|
case "sha1":
|
|
foreach ($v as $sha1Key => $sha1Value){
|
|
if(isset($value[$sha1Value])) {
|
|
$sha1Str .= $value[$sha1Value];
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
$enc = base64_encode(strtoupper(sha1(FddConfig::AppId.strtoupper(md5($md5Str)).strtoupper(sha1($sha1Str)))));
|
|
|
|
return $enc;
|
|
}
|
|
/**
|
|
* 数组参数转字符串格式
|
|
* @param $Array
|
|
* @return string
|
|
*/
|
|
public function ArrayParamToStr($Array)
|
|
{
|
|
$Str = "?";
|
|
if (!empty($Array))
|
|
{
|
|
foreach($Array as $k => $v){
|
|
$Str .= $k."=".$v."&";
|
|
}
|
|
}
|
|
return trim($Str,"&");
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* 合同生成msg_digest加密
|
|
* @param FddTemplate $param
|
|
* @return string
|
|
*/
|
|
public static function ContractDigest(FddTemplate $param)
|
|
{
|
|
$sha1 = FddConfig::AppSecret.$param->GetTemplate_id().$param->GetContract_id();
|
|
$enc = base64_encode(strtoupper(sha1(FddConfig::AppId.strtoupper(md5($param->GetTimestamp())).strtoupper(sha1($sha1)).$param->GetParameter_map())));
|
|
return $enc;
|
|
}
|
|
|
|
/**
|
|
* 文档签署接口(手动签) msg_digest加密
|
|
* @param FddSignContract $param
|
|
* @return string
|
|
*/
|
|
public static function ExtsignDigest(FddSignContract $param)
|
|
{
|
|
$sha1 = FddConfig::AppSecret.$param->GetCustomer_id();
|
|
$enc = base64_encode(strtoupper(sha1(FddConfig::AppId.strtoupper(md5($param->GetTransaction_id().$param->GetTimestamp())).strtoupper(sha1($sha1)))));
|
|
return $enc;
|
|
}
|
|
|
|
/**
|
|
* 文档签署接口(含有效期和次数限制) msg_digest加密
|
|
* @param FddSignContract $param
|
|
* @return string
|
|
*/
|
|
public static function ExtsignValiityDigest(FddSignContract $param)
|
|
{
|
|
$sha1 = FddConfig::AppSecret.$param->GetCustomer_id();
|
|
$enc = base64_encode(strtoupper(sha1(FddConfig::AppId.strtoupper(md5($param->GetTransaction_id().$param->GetTimestamp().$param->GetValidity().$param->GetQuantity())).strtoupper(sha1($sha1)))));
|
|
return $enc;
|
|
}
|
|
|
|
}
|
|
?>
|