这是在java中计算的摘要值
SF4D6+PX7VB2hDbnb59a4WrWMOk=
这是我用
计算的摘要值 $nodoDocumento = $doc3
->getElementsByTagName('factura')
->item(0);
$content = $nodoDocumento->C14N(FALSE, TRUE);
// OR
$content = $nodoDocumento->C14N(TRUE, TRUE);
$actualDigest = base64_encode(hash('SHA1', $content, false));
给了我
NDg1ZTAzZWJlM2Q3ZWQ1MDc2ODQzNmU3NmY5ZjVhZTE2YWQ2MzBlOQ==
这是我的xml文件
<?xml version="1.0" encoding="UTF-8"?>
<factura id="comprobante" version="1.0.0">
<infoTributaria>
<ambiente>1</ambiente>
<tipoEmision>1</tipoEmision>
<razonSocial>Carrillo Serrano Juan Roberto</razonSocial>
<nombreComercial>Carrillos Team</nombreComercial>
<ruc>1703644805001</ruc>
<claveAcceso>2710201401170364480500110010010000000011234567812</claveAcceso>
<codDoc>01</codDoc>
<estab>001</estab>
<ptoEmi>001</ptoEmi>
<secuencial>000000001</secuencial>
<dirMatriz>La Condamine N16-37 y Solano </dirMatriz>
</infoTributaria>
<infoFactura>
<fechaEmision>27/10/2014</fechaEmision>
<dirEstablecimiento>La Condamine N16-37 y Solano</dirEstablecimiento>
<obligadoContabilidad>NO</obligadoContabilidad>
<tipoIdentificacionComprador>04</tipoIdentificacionComprador>
<razonSocialComprador>SALGRAF CIA. LTDA</razonSocialComprador>
<identificacionComprador>1792067464001</identificacionComprador>
<totalSinImpuestos>3500.00</totalSinImpuestos>
<totalDescuento>0.00</totalDescuento>
<totalConImpuestos>
<totalImpuesto>
<codigo>2</codigo>
<codigoPorcentaje>2</codigoPorcentaje>
<baseImponible>3500.00</baseImponible>
<valor>420.00</valor>
</totalImpuesto>
</totalConImpuestos>
<propina>0.00</propina>
<importeTotal>3920.00</importeTotal>
<moneda>DOLAR</moneda>
</infoFactura>
<detalles>
<detalle>
<codigoPrincipal>001</codigoPrincipal>
<descripcion>DESARROLLO DE SOFTWARE</descripcion>
<cantidad>1</cantidad>
<precioUnitario>3500</precioUnitario>
<descuento>0</descuento>
<precioTotalSinImpuesto>3500.00</precioTotalSinImpuesto>
<impuestos>
<impuesto>
<codigo>2</codigo>
<codigoPorcentaje>2</codigoPorcentaje>
<tarifa>12.00</tarifa>
<baseImponible>3500.00</baseImponible>
<valor>420.00</valor>
</impuesto>
</impuestos>
</detalle>
</detalles>
<infoAdicional>
<campoAdicional nombre="Dirección">Los Eucaliptos E1-374 y Av. 10 de Agosto
</campoAdicional>
<campoAdicional nombre="Teléfono">2471233 ext. 101</campoAdicional>
<campoAdicional nombre="Email">contador@calcograf.com</campoAdicional>
</infoAdicional>
</factura>`
答案 0 :(得分:1)
尝试
$actualDigest = base64_encode(hash('SHA1', $content, true));
第三个参数$raw_output
控制返回值是原始二进制值还是小写字符串的字符串。如果需要base64编码的SHA1,则需要对原始二进制值进行base64编码,而不是该二进制值的十六进制表示。