Yodlee获取Captcha的MFAR响应字节数组



我正试图从Yodlee getMFAResponse返回的字节数组中创建一个编码字符串(看起来像[-1,0,2,-1]等),这样我就可以将其用作HTML中图像标记的源,以便显示CAPTCHA。(在试图为金融机构获取图像信息时,这似乎也是一个问题)。

为了实现这一点,我将字节数组从响应对象中移除,将其通过btoa(),然后将其附加到以data:image/???;base64,开头的字符串中,其中???是文件类型。我试过位图、jpeg、png、gif等,但似乎都不起作用。我还尝试了"魔术串"方法来确定格式,但它与我找不到的任何格式都不匹配。我认为主要的问题是我不知道文件的格式,但也许我只是没有正确解码。

我最终得到了这样的东西:

  data:image/jpeg;base64,NjYsNzcsNTgsMTE2LDAsMCwwLDAsMCwwLDU0LDAsMCwwLDQwLDAsMCwwLC05MSwwLDAsMCw0NSwwLDAsMCwxLDAsMzIsMCwwLDAsMCwwLDQsMTE2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLC0xLC0xLC0xLDAsLTEsLTEsLTEsMCwtMSwtMSwtMSwwLC0xLC0xLC0xLDAsLTEsLTEsLTEsMCwtMSwtNSwtMSwwLC0xLC0xLC0xLDAsLTksLTksLTksMCwtMSwtNSwtMSwwLC0xLC0xLC0xLDAsLTEsLTUsLTEsMCwtMTcsLTE3LC0xNywwLC0xLC0xLC0xLDAsLTEsLTEsLTEsMCwtMSwtMSwtMSwwLC05LC0xMywtOSwwLC0xLC0xLC0xLDAsLTEsLTEsLTEsMCwtMSwtMSwtMSwwLC0xLC0xLC0xLDAsLTEsLTEsLTEsMCwtMSwtMSwtMSwwLC0xLC0xLC0xLDAsLTEsLTEsLTEsMCwtMSwtMSwtMSwwLC05LC05LC05LDAsLTEsLTEsLTEsMCwtMSwtMSwtMSwwLC0xLC0xLC0xLDAsLTEsLTEsLTEsMCwtMTcsMCwtMSwtMSwtMSwwLC0xLC0xLC0xLDAsLTEsLTEsLTEsMCwtMSwtMSwtMSwwLC0xLC0xLC0xLDAsLTEsLTEsLTEsMCwtMSwtMSwtMSwwLC0xLC0xLC0xLDAsLTEsLTEsLTEsMCwtMSwtMSwtMSwwLC0xLC0xLC0xLDAsLTEsLTEsLTEsMCwtMSwtMSwtMSwwLC0xLC0xLC0xLDAsLTEsLTEsLTEsMCwtMSwtMSwtMSwwLC0xLC0xLC0xLDA='

我只使用Javascript,包括服务器端和客户端,我不了解Java(这似乎是Yodlee的大多数答案所针对的)。我不知道是我对字节数组的解码出了问题,还是我不知道正确的图像格式。

我在js文件上尝试了你的Base64字符串。它没有显示图像。我无法访问您的btoa()的js代码。然而,我把我的工作代码粘贴在这里,也许问题在于将byteArray转换为Base64。(我正在使用c#,angularJS使用Yodlee API)。

 function _arrayBufferToBase64(biteArray) {
    var binary = '';
    var bytes = new Uint8Array(biteArray);
    var len = bytes.byteLength;
    for (var i = 0; i < len; i++) {
        binary += String.fromCharCode(bytes[i]);
    }
    return window.btoa(binary);
}

然后这就是我如何在js文件中使用它来使用jQuery:填充<IMG />

let captchaImage64 = _arrayBufferToBase64(mfaLoginForm.fieldInfo.image);
                let captchaImage = $('<img />', {
                    src: "data:image/png;base64," + captchaImage64,
                    class: "img img-responsive",
                    style: "margin:auto; max-width:250px; margin-bottom: 15px;"
                });
let captchaContainer = $('<div />', {
                    class: "form-group row",
                    id: "captchaContainer"
                });
captchaContainer.append(captchaImage);

最新更新