iOS Passbook序列号:哪些字符有效?最大长度是多少?

时间:2013-01-18 00:00:35

标签: ios passbook

适用于iOS的Passbook使用您的服务器可用于识别特定传递的序列号。

是否有人知道存折序列号中哪些字符有效?我知道数字和字母是有效的,但符号/标点符号也有效(例如“ - ”和“。”)?

序列号的最大长度是多少?

谢谢。

1 个答案:

答案 0 :(得分:5)

几乎任何角色都可以使用,包括' - '和'。',只要序列保持唯一。特殊字符(如'\')需要正确转义,但这些字符可能与您的数据库不兼容,或者如果代码中其他地方处理不当,可能会导致其他问题。

我刚试过一个带有以下序列的传递,它没有问题地添加到Passbook。

"serialNumber":"[]{}-_)(*&^%$#@!`~+=|\\\/?.><,:;"

UTF8编码的字符也很好:

"serialNumber":"\u9127\u6a02\u611a" // Chinese characters 鄧樂愚

至于最大长度,我不知道有任何限制,虽然实验起来很简单。

这个400个字符的序列也可以摄取。

"serialNumber":"0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"

我建议不要对串口使用任何类型的用户输入,因为这可能会导致非唯一的冲突,并使您受到注入攻击。如果您更改架构(比如AWS DynamoDB等Web服务解决方案),那么遵守XML标准并不是一个不好的做法。 Base64编码您的序列将确保广泛的兼容性。

序列号也可用于在通行证中存储元数据。

"serialNumber":"UniqueID|data1|data2|data3|etc."