小编Ada*_*M-W的帖子

iTunes Music Store购买参数

我正在尝试研究如何为iTunes Music Store(iTMS)生成参数以及它们是什么/意思.到目前为止,我可以做所有其他正常的事情,如登录,查看帐户信息,但购买看起来有一些加密元素(或只是我没有看到的东西).

例如,iTunes 9购买一些随机免费应用程序时给出:

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
    <key>guid</key>
    <string>4225D067.2C503B42.0DE019C0.09C96165.C4AEA83B.2AFF3A27.37A7327A</string>
    <key>kbsync</key>
    <data>
    AAEAAOuJNWEY3t2cfDs71eXYbxmcvyB/ZB8PABQSjnY0zvL9ofILWBGfLd4Z7HnI9s3Y
    akaVt+3xOW9E9Arva1RLzfX5ONpclt5s2IW/rXOgDnX6/AmacJL4UbnvvLR7mUtKZVNh
    aOlKGk7dNqMHnZUiIkLRSS+sOJ2KIR2OT6kZ02tlDYv/bmI9Zr5G2HUsG1TZRQ==
    </data>
    <key>machineName</key>
    <string>MORPHEUS</string>
    <key>needDiv</key>
    <string>0</string>
    <key>price</key>
    <string>0</string>
    <key>pricingParameters</key>
    <string>SWUPD</string>
    <key>productType</key>
    <string>C</string>
    <key>salableAdamId</key>
    <string>314765784</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

我知道大部分来自action-params或buy-params(对于这个例子来说productType=C&salableAdamId=314765784&pricingParameters=SWUPD&price=0&ct-id=14),并且GUID是常量(对于我的机器),但是我无法弄清楚kbsync字段是什么.

我希望有人能看一眼并迅速解决,但我无法做到.

其他信息也可能基于:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>signature</key><data>kqUFBdQnA0MPzrWKAGcsBshzc5XnLLm9TO+0l0jyZTJYYFiIsRc7m97IYyCCkUt/X5l+ObKfc+06Z5sgu/tAvlA1IE6LKKCEfZQVihFoYeihff3vf6lC821tPuuxuQdReBxyjHy1n94twf2iS8uRR3LoZQhQxpRdh5vDNrHwXOg=</data>
  <key>certs</key>
  <array>
    <data>MIIDOTCCAiGgAwIBAgIBATANBgkqhkiG9w0BAQQFADB+MRMwEQYDVQQKEwpBcHBsZSBJbmMuMRUwEwYDVQQLEwxpVHVuZXMgU3RvcmUxGjAYBgNVBAMTEWlUdW5lcyBTdG9yZSBSb290MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJQ3VwZXJ0aW5vMB4XDTA3MTAwOTIxNTkxNFoXDTA4MTEwNzIxNTkxNFowgYExEzARBgNVBAoTCkFwcGxlIEluYy4xFTATBgNVBAsTDGlUdW5lcyBTdG9yZTEdMBsGA1UEAxMUaVR1bmVzIFN0b3JlIFVSTCBCYWcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRIwEAYDVQQHEwlDdXBlcnRpbm8wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOLMu/eV+eSLVEGtn536FkXAsi/vtpXdHpTNS9muEVlvlkubKXdPDd5jV5WnQpAKY4GZrBn8azP9UKBd85nhIb5nqHQHCmH5DpBK9GZPFpoIdXguJSre8pZwQaYEXQGtTt3nXvk9k8OHs5W/9xFLuD7fpkKSIl+0KLPFULdyEtlvAgMBAAGjQjBAMB0GA1UdDgQWBBTd4gDjfN3LFr3b5G8dvUTpC56JZTAfBgNVHSMEGDAWgBSw2uF/qItKaoFdDKGEVkYeau/lzzANBgkqhkiG9w0BAQQFAAOCAQEAIDpkK1CqTNyl7SEZWvUTRYPdZzn9Y4QjnbSQ6hFkF/PClJkXn3TzMW3ojnxNLphKZxOY53s6D/Hf1B5UX2bJDAnfQ/W8d10SPubGJ1FnUZK8KaKeOzAgks5ob9dnOUe4CZKhZ5FyggIJfgd38Q0s8WF474j5OA/5XRPczgjt+OiIfzEVX5Xqpm1TU7T4013eHze5umqAsd9fFxUXdTC+bl9xdj5VOmqUUfOivoiqiBK2/6XAaDIFF/PEnxVou+BpqkdsyTZz/HiQApve+7NONqS58ciq3Ov+wivpVJKxMyFgcXFWb/d2ZTc04i+fGf0OA4QmkSRcAZOxQkv0oggtTw==</data>
  </array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

base64 cryptography itunes plist

6
推荐指数
1
解决办法
2110
查看次数

Node.js JSON解析错误

我试图用node.js创建一个Facebook应用程序,但是我在检查已签名的请求时遇到了麻烦.每次我发出请求时,程序都会抛出一个SyntaxError:Unexpected token ILLEGAL:

undefined:1
":"721599476"}
              ^^
SyntaxError: Unexpected token ILLEGAL
Run Code Online (Sandbox Code Playgroud)

罪魁祸首功能如下:

function parse_signed_request(signed_request, secret) {
    encoded_data = signed_request.split('.',2);
    // decode the data
    sig = encoded_data[0];
    json = base64url.decode(encoded_data[1]);
    data = JSON.parse(json); // ERROR Occurs Here!

    // check algorithm - not relevant to error
    if (!data.algorithm || data.algorithm.toUpperCase() != 'HMAC-SHA256') {
        console.error('Unknown algorithm. Expected HMAC-SHA256');
        return null;
    }

    // check sig - not relevant to error
    expected_sig = crypto.createHmac('sha256',secret).update(encoded_data[1]).digest('base64').replace(/\+/g,'-').replace(/\//g,'_').replace('=','');
    if (sig !== expected_sig) {
        console.error('Bad signed JSON Signature!');
        return …
Run Code Online (Sandbox Code Playgroud)

javascript json facebook parse-error node.js

6
推荐指数
1
解决办法
1万
查看次数

SQL CREATE TABLE错误

答案是我使用了错误的引号而不是反引号.愚蠢的语法hilighter欺骗了我.

在过去的半小时里,我一直坚持这个简单的事情,所以我想我可以尝试在这里快速回答一下.

假设我使用的是mysql 5.1,那么我的SQL语法究竟是什么不正确

CREATE TABLE 'users' (
    'id' INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    'username' VARCHAR(20) NOT NULL,
    'password' VARCHAR(40) NOT NULL,
    'salt' VARCHAR(40) DEFAULT NULL,
    'email' VARCHAR(80) NOT NULL,
    'created_on' INT(11) UNSIGNED NOT NULL,
    'last_login' INT(11) UNSIGNED DEFAULT NULL,
    'active' TINYINT(1) UNSIGNED DEFAULT NULL,
) 
ENGINE InnoDB;
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near ''users';

CREATE TABLE 'users' …
Run Code Online (Sandbox Code Playgroud)

mysql authentication zend-framework

5
推荐指数
1
解决办法
3万
查看次数

用nodejs加密和php的mcrypt解密blowfish-ecb

我正在尝试使用内置的加密库解码Node.js中的以下base64编码的密文

2tGiKhSjSQEjoDNukf5BpfvwmdjBtA9kS1EaNPupESqheZ1TCr5ckEdWUvd+e51XWLUzdhBFNOBRrUB5jR64Pjf1VKvQ4dhcDk3Fdu4hyUoBSWfY053Rfd3fqpgZVggoKk4wvmNiCuEMEHxV3rGNKeFzOvP/P3O5gOF7HZYa2dgezizXSgnnD6mCp37OJXqHuAngr0pps/i9819O6FyKgu6t2AzwbWZkP2sXvH3OGRU6oj5DFTgiKGv1GbrM8mIrC7rlRdNgiJ9dyHrOAwqO+SVwzhhTWj1K//PoyyzDKUuqqUQ6AvJl7d1o5sHNzeNgJxhywMT9F10+gnliBxIg8gGSmzBqrgwUNZxltT4uEKz67u9eJi59a0HBBi/2+umzwOCHNA4jl1x0mv0MhYiX/A==
Run Code Online (Sandbox Code Playgroud)

它似乎与PHP的mcrypt函数一起使用字符串typeconfig.sys^_-作为键,如将值输入到http://www.tools4noobs.com/online_tools/decrypt/并选择Blowfish,ECB,Base64 decode所示.

但是,当我在Node.js中运行以下代码时:

var crypto = require('crypto');
var data = "2tGiKhSjSQEjoDNukf5BpfvwmdjBtA9kS1EaNPupESqheZ1TCr5ckEdWUvd+e51XWLUzdhBFNOBRrUB5jR64Pjf1VKvQ4dhcDk3Fdu4hyUoBSWfY053Rfd3fqpgZVggoKk4wvmNiCuEMEHxV3rGNKeFzOvP/P3O5gOF7HZYa2dgezizXSgnnD6mCp37OJXqHuAngr0pps/i9819O6FyKgu6t2AzwbWZkP2sXvH3OGRU6oj5DFTgiKGv1GbrM8mIrC7rlRdNgiJ9dyHrOAwqO+SVwzhhTWj1K//PoyyzDKUuqqUQ6AvJl7d1o5sHNzeNgJxhywMT9F10+gnliBxIg8gGSmzBqrgwUNZxltT4uEKz67u9eJi59a0HBBi/2+umzwOCHNA4jl1x0mv0MhYiX/A==";
var decipher = crypto.createDecipher('bf-ecb', 'typeconfig.sys^_-');
data = decipher.update(data, "base64", "utf8");
data += decipher.final("utf8");
console.log(data);
Run Code Online (Sandbox Code Playgroud)

我得到垃圾输出:

y
?:????d?(????Q?i??z1??4?? ?k?(? ??a5????u??73c/??(???)????????f????
                                                              ?ec?-<z?8????(?-L?????I??1L*??u?4?j-??h?@\P)???.?^???q??U???W&?x??85?T-?9,dE<g}?`*?
??|@????k"?!?D'u???,x??7????
                 ??9q=q?q???>?w?T????H3??i)R??zy??C??
                                                    ??o?
Run Code Online (Sandbox Code Playgroud)

我也尝试过对库本身的测试,因为它似乎能够处理它自己编码的东西:

var crypto = require('crypto')
var cipher = crypto.createCipher("bf-ecb", "key");
var data = cipher.update("foobar", "utf8", "base64");
data += cipher.final("base64");
console.log(data);
var decipher = crypto.createDecipher("bf-ecb", "key");
data = decipher.update(data, "base64", "utf8");
data += decipher.final("utf8");
console.log(data);
Run Code Online (Sandbox Code Playgroud)

生产:

y0rq5pYkiU0=
foobar
Run Code Online (Sandbox Code Playgroud)

但复制并粘贴base64字符串并将其输入http://www.tools4noobs.com/online_tools/decrypt/以及键"key"也会产生垃圾输出. …

encryption blowfish mcrypt ecb node.js

5
推荐指数
1
解决办法
4538
查看次数

调试失败的 node-ffi 回调/分段错误

我正在尝试使用 node-ffi 从 node.js 中使用 libvlc,虽然它似乎适用于一般的基本媒体播放器功能,但当我尝试使用时,我的程序中不断出现崩溃、分段错误和一般冻结libvlc 的异步事件系统并将其与节点的 EventEmitter 集成。到目前为止,我使用的代码托管在https://gist.github.com/2644721,但似乎不起作用。

GDB 产生了好坏参半的结果,但我收到的最后一次崩溃是:

Program received signal SIGSEGV, Segmentation fault.
0x000000000057cc86 in v8::Function::Call(v8::Handle<v8::Object>, int, v8::Handle<v8::Value>*) ()
(gdb) bt
#0  0x000000000057cc86 in v8::Function::Call(v8::Handle<v8::Object>, int, v8::Handle<v8::Value>*) ()
#1  0x00007ffff5997a41 in CallbackInfo::DispatchToV8(CallbackInfo*, void*, void**) ()
   from /home/adam/node_modules/node-ffi/compiled/0.6/linux/x64/ffi_bindings.node
#2  0x00007ffff5997adb in CallbackInfo::WatcherCallback(uv_async_s*, int) ()
   from /home/adam/node_modules/node-ffi/compiled/0.6/linux/x64/ffi_bindings.node
#3  0x00000000007be12f in ev_invoke_pending ()
#4  0x00000000007c2087 in ev_run ()
#5  0x00000000007b597f in uv_run ()
#6  0x000000000052a147 in node::Start(int, char**) ()
#7  0x00007ffff63ca76d in __libc_start_main ()
   from /lib/x86_64-linux-gnu/libc.so.6
#8 …
Run Code Online (Sandbox Code Playgroud)

crash v8 vlc node.js node-ffi

5
推荐指数
0
解决办法
1212
查看次数

是否可以在没有窗口的情况下使用Windows Raw Input API(即从控制台应用程序)?

是否可以在没有窗口的情况下使用Windows Raw Input API(即从控制台应用程序)?

我尝试过使用RegisterRawInputDevices,但我的消息循环似乎没有从GetMessage 获取任何事件,因此只是"挂起".

windows console raw-input message-loop

4
推荐指数
1
解决办法
3508
查看次数

编译XNU内核2050

我对编译最新版本的XNU内核的最佳方法感到困惑.我已经看到很多关于Mac OS X 10.4附带的旧内核的说明,但是较新的源代码缺少指令所包含的许多内容.只是make在XNU内核源上运行会带来很多关于找不到的错误ctfconvert,ctfmerge并且ctfdump.有没有人有一个很好的"howto"来构建一个新的内核?

macos kernel osx-mountain-lion

4
推荐指数
1
解决办法
3584
查看次数

如何在使用VLC的虚拟接口时阻止显示控制台

我正在尝试从Node.js服务器脚本以"虚拟"模式启动VLC,但是child_process.spawn('vlc',['-I dummy'])在使用Windows时使用会为VLC的输出生成一个新的控制台窗口.有没有办法防止这种情况发生并通过stdout ReadableStream强制所有stdout,所以没有"弹出窗口"发生?

编辑:这个问题与node.js无关,它只是我调用它的方式和VLC的行为.解决方案如下.

谢谢.

windows subprocess vlc child-process node.js

2
推荐指数
1
解决办法
8879
查看次数

如何编码(序列化)和解码(反序列化)AMF数据包?

目前,似乎我已经尝试了本书中的每一个技巧,试图让它发挥作用.我需要一些编码AMF请求然后解码响应的方法.在这一点上,我不在乎它是什么语言,只要它是可行的和免费的(就像我一样),但我更喜欢PHP.

我不知道还需要哪些其他信息,但我很乐意提供更多信息 - 只需评论一下!

谢谢.

编辑:似乎我使用的AMFPHP版本被破坏了.使用我从某处工作的不同版本.

php flash remoting serialization amf

1
推荐指数
1
解决办法
8435
查看次数

Doxygen python链接到函数

我正在使用Doxygen来记录我的python模块,我试图让它链接到文本中的函数.我可以将它链接到函数的命名空间ok,但不能链接到函数本身.

ModuleName::Namespace工作,但ModuleName::Namespace::getSomething()没有.

如何让这些链接起作用?

python documentation doxygen namespaces module

0
推荐指数
1
解决办法
2379
查看次数