刚开始matasano安全挑战,同时考虑学习IO。所以现在,我被困在挑战 1 中,我需要将字符串转换为 base64。
无论如何,我已经到了需要将二进制转换为十进制的地步,这是我的方法:
binToDec := method( bin, <-- program does not enter this method
dec := 0
rem := 0
i := 0
while ( bin != 0,
rem = bin % 10
bin = bin / 10
dec = dec + rem * 2 pow( i )
i = i + 1
)
return dec
)
toBase64Ascii := method( slice,
tmp := ""
for( a, 0, slice size, <-- construct a string to use with asNumber
tmp = tmp .. slice at( a )
)
dec := binToDec( tmp asNumber ) <-- the line that make the whole thing crash
)
for ( a, 0, bin size, 6,
tmp := toBase64Ascii( bin slice( a, a + 6 )
***some more code***
)
没有错误消息或任何东西,程序只是无限期地挂起。
来自文档: asNumber 返回转换为数字的接收者。初始空格被忽略。
所以我必须说我在这里很困惑,发生了什么?
我会做更多的研究,但 io 对谷歌来说是不可能的......