我提前为这篇文章的篇幅道歉.我真的不太了解这个问题,无法正确识别具体问题实际上是什么!但无论如何,我们已经做出有悖于我们的会员API调用,查询有关我们的会员信息(加入日期,会员类型等)使用@Leigh提供的步骤和建议,在这里,他们一直在努力太棒了!再次感谢Leigh,我们的会员非常高兴能够做到这一点!
现在我想为我们的会员设置单点登录,允许他们在我们的页面登录,然后被提交到他们已经登录该网站的会员资料.根据API文档,我需要做的一件事是:
"使用签名证书签署登录人员的Portal用户名."
我完全坚持这个.我在表单中获得了一个XML私钥(由他们的.NET应用程序生成)
<RSAKeyValue><Modulus>{stuff}</Modulus><Exponent>{stuff}</Exponent><P>... etc etc
Run Code Online (Sandbox Code Playgroud)
我认为我无法直接使用此格式,必须将其转换为PEM格式或类似格式.使用OpenSSL,我想我已经完成了这个,现在有一个格式为"----- BEGIN PRIVATE KEY ----- {stuff} ----- END PRIVATE KEY -----"的文件.
使用Leigh的解决方案确实给了我一个签名,但它与API文档中提供的示例不匹配.我认为这是因为它使用HmacSHA1,而他们注意到"标题中的签名使用HMAC SHA1而创建安全令牌的签名使用公钥/私钥对和RSA-SHA1.同样的方法不能用于生成两者. " 我试过改变
<cfset key = key.init(jKey,"HmacSHA1") />
Run Code Online (Sandbox Code Playgroud)
至
<cfset key = key.init(jKey,"RSA-SHA1") />
Run Code Online (Sandbox Code Playgroud)
得到"算法RSA-SHA1不可用".
我曾尝试复制和粘贴其他一些建议的解决方案,但它们都不起作用.一个例子(来自12Robots.com):
<!--- Create a Java Cipher object and get a mode --->
<cfset cipher = createObject('java', 'javax.crypto.Cipher').getInstance("RSA") />
<!--- The mode tells the Cipher whether is will be encrypting or decrypting --->
<cfset encMode = cipher.ENCRYPT_MODE />
<cfset encryptedValue = …Run Code Online (Sandbox Code Playgroud) encryption coldfusion cryptography single-sign-on private-key
多年来,我们的会员号码的格式已多次改变,使得00008,9538,746,0746,00746,100125以及各种其他排列有效,独特且需要保留.从我们的数据库导出到批量更新所需的自定义Excel模板中剥离前导零,使得00746和0746都被截断为746.
插入撇号技巧或格式化为文本在我们的情况下不起作用,因为我们在Excel中打开它时数据似乎已经改变了.格式化为zip将不起作用,因为我们的长度小于五位的有效数字不能添加零.我对"自定义"格式化没有任何好运,因为这似乎要求在数字中添加相同数量的前导零,或者为每个数字添加足够的零以使它们具有相同的长度.
有线索吗?我希望有一些方法可以将Excel设置为仅仅采用它给出的内容而不管它,但似乎并非如此!我将不胜感激任何建议或意见.非常感谢大家!
更新 - 感谢大家的帮助!这里有一些更具体的细节.我们使用的是第三方会员管理应用程序 - 我们无法直接访问数据库,我们需要使用他们的"查询构建器"工具来获取我们想要批量更新的数据.然后我们使用他们的"模板"格式导出,这种格式称为XLSX,但必须在幕后进行,因为如果我们尝试导入常规的旧Excel,我们会收到错误.只有他们的模板有效.
数据在数据库中格式正常,因为所有数字都在基于Web的管理工具中正确显示.此外,如果我导出为CSV,将其保存为.txt并将其导入Excel,数字显示正常.
我所做的与ooo的解释类似 - 我导出的模板数字不正确,然后导出为CSV/txt,并将这些数字复制/粘贴到模板中并重新导入.我没有得到错误,这是我猜的,但我不知道它是否在午夜之后才成功!:-(
coldfusion ×1
cryptography ×1
encryption ×1
excel ×1
formatting ×1
numbers ×1
private-key ×1
zero ×1