有一个XML,我正在使用XSLT构建另一个XML.我希望某些字段具有哈希值而不是实际值.意思我应该知道数据何时被更改,但由于某些安全原因我不想知道数据.
<xsl:template name="sensitiveDataTemplate">
<xsl:param name="sensitiveData"></xsl:param>
<xsl:if test="$sensitiveData!=''">
<xsl:value-of select="'XXXXXX'"></xsl:value-of>
</xsl:if>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
现在我只是用XXXXX替换数据,但我需要一些哈希值.
我不久前找到了一个解决方案,与上面给出的答案类似。
我只是调用 PHP 函数来使用 SHA1 哈希。XSL:
<xsl:template name="sensitiveDataTemplate">
<xsl:param name="sensitiveData"></xsl:param>
<xsl:if test="$sensitiveData!=''">
<xsl:value-of select="php:function('sha1', substring($sensitiveData,1, string-length($sensitiveData)))"></xsl:value-of>
</xsl:if>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
PHP:
$proc->registerPHPFunctions('sha1');
Run Code Online (Sandbox Code Playgroud)