【发布时间】:2011-08-03 16:58:32
【问题描述】:
我一直在摆弄我的程序,并且一直在使用允许 BASIC 身份验证的 urlread 的修改版本。问题是我必须在基本 urlread 函数中包含以下代码行:
urlConnection.setRequestProperty('Authorization', 'Basic passphrase');
...其中密码是 'user:pass' 的 base64 编码字符串。如果我将密码直接放入该行的字符串中,程序将正常工作,但当我尝试连接以获取生成的“基本密码”字符串时,麻烦就开始了。最初我只有:
['Basic', ' ', passphrase]
在那之后我在命令窗口中做了一些探索和试验。:
passphrase = 'somerandompassphrase';
teststr1 = ['Basic', ' ', passphrase];
teststr2 = ['Basic', ' ', 'somerandompassphrase'];
teststr3 = 'Basic somerandompassphrase';
strcmp(teststr1, teststr2)
strcmp(teststr1, teststr3)
strcmp(teststr2, teststr3)
输出为 1,或者每个都为真(如预期的那样)。但是,如果我采用 'somerandompassphrase' 的 base64 编码(即 'c29tZXJhbmRvbXBhc3NwaHJhc2U='):
encoded = base64encode(passphrase);
teststr1 = ['Basic', ' ', encoded];
teststr2 = ['Basic', ' ', 'c29tZXJhbmRvbXBhc3NwaHJhc2U='];
strcmp(teststr1, teststr2)
输出为 0,或为假。不应该是真的吗? base64encode函数可以在here找到。
即使是快速测试:
strcmp(encoded, 'c29tZXJhbmRvbXBhc3NwaHJhc2U=')
输出还是0。
请帮忙,我不知道发生了什么。
【问题讨论】:
标签: string matlab base64 encode