PowerBI自定义数据连接器:Crypto.CreateHash用SHA1报无效算法错误
解决Power Query自定义连接器中SHA1哈希的"无效加密算法"错误
嗨,我一眼就看出问题出在哪了——你在调用Crypto.CreateHash时用了CryptoAlgorithm.SHA1,但Power Query根本不认识这个枚举写法!
在Power Query的语法里,Crypto.CreateHash的第二个参数(加密算法)需要直接传入字符串形式的算法名称,而不是枚举成员。你写的CryptoAlgorithm.SHA1是无效的,这就是系统提示"无效加密算法"的原因。
给你修正后的完整代码:
let nonce = Text.NewGuid(), timestamp = DateTimeZone.ToText(DateTimeZone.UtcNow()), // 把错误的CryptoAlgorithm.SHA1替换成字符串"SHA1" digestBin = Crypto.CreateHash("SHA1", Text.ToBinary(nonce×tamp&Extension.CurrentCredential()[Password])), digest = Binary.ToText(digestBin, BinaryEncoding.Base64), val = "UsernameToken Username=""" & Extension.CurrentCredential()[Username] & """, PasswordDigest=""" & digest & """, Nonce=""" & nonce & """, Created=""" & timestamp & """" in val
另外再给你两个小提醒:
- 确保
Extension.CurrentCredential()能正常拉取到用户名和密码,不然可能会出现哈希生成失败的情况。 - 如果之后需要切换到其他哈希算法(比如SHA256),直接把
"SHA1"换成对应的字符串就行,比如"SHA256"。
内容的提问来源于stack exchange,提问作者DJ Sitte
相关产品推荐
相关产品推荐

