看起来默认的powershell模块使用MD5加密服务提供者来计算缓存的classpath文件的哈希值(我认为是这样的);
function Get-StringHash(str) {
$md5 = new-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
...
在某些需要遵循FIPS的Windows安装中(例如由系统管理员强制),MD5被简单地禁止,并且在该函数中将因为FIPS而出现错误。
简单的方法是改用兼容的算法,例如SHA1;
function Get-StringHash(str) {
$md5 = new-Object -TypeName System.Security.Cryptography.SHA1CryptoServiceProvider
...
这不应影响Clojure CLI脚本的运行,除非改变classpath的实际哈希值,这应与脚本之前的运行内部一致。除非某些东西依赖于cpcache的精确MD5哈希(看起来它没有这样),这应该是一个针对FIPS强制执行的快速修复方法。