三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

itunes登录【完整协议方案】

itunes登录【完整协议方案】

itunes登录协议方案

文章目录

  • itunes登录协议方案
  • 前言
  • 一、构建请求体
  • 二、获取X-Apple-ActionSignature
  • 三、登录itunes

前言

本文章将完整编写itunes的登录流程。
最后会附带C++的源代码。


一、构建请求体

X-Apple-ActionSignature 加密原理是将请求体放入加密函数,生成一段签名,该签名与请求体相互验证。

请求体(示例):

<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE plist PUBLIC"-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>appleId</key><string>1836557912@qq.com</string>//appleId<key>attempt</key><string>1</string><key>guid</key><string>AADE3451.A02684E0.00000000.AF345171.6E9C6815.AB7F7EB4.B9A15A66</string>//guid 次此段按照格式随机生成 生成后要保存<key>password</key><string>123456789</string>//apple密码<key>rmp</key><string>0</string><key>createSession</key><string>true</string><key>why</key><string>purchase</string></dict></plist>

构建请求体只需要修改这几个值 appleId 、password、guid。
其中guid为设备信息,可以按照格式随机生成。

二、获取X-Apple-ActionSignature

将步骤一构建的请求体转base64 后发送到加密服务器

请求示例:

//(该服务端无任何发包,纯用于计算Apple的各种加密值,需要自己搭建可以联系我qq:1836557912)post http://111.170.34.231:8080//设置请求体{"type":"getActionSignature","data":"VGVzdERhdGE="}//data : 请求体转base64后的值//成功后会响应{"data":{"actionSignature":"AvUt6xmYLde0Me5AYRFp…………AAAAQQCCB4A"},"message":"Success","success":true}

三、登录itunes

此时我们就有了请求体和对应X-Apple-ActionSignature的值,即可完成登录

请求示例:

post https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/authenticate
//设置请求头Content-Type:application/x-apple-plist;Charset=UTF-8Accept-Language:zh-cn,zh;q=0.75,en-us;q=0.50,en;q=0.25Referer:https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/authenticateUser-Agent:iTunes/12.2.2(Windows;Microsoft Windows8x64 BusinessEdition(Build9200))AppleWebKit/7605.1033.1002.2X-Apple-ActionSignature:AvUt6xmYLde0Me5AYRFp…………AAAAQQCCB4A X-Apple-Tz:28800X-Apple-Store-Front:149965-19,17Cache-Control:no-cache Connection:Close Accept:*/*
//设置请求体 要保持和之前的一致<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE plist PUBLIC"-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>appleId</key><string>1836557912@qq.com</string>//appleId<key>attempt</key><string>1</string><key>guid</key><string>AADE3451.A02684E0.00000000.AF345171.6E9C6815.AB7F7EB4.B9A15A66</string>//guid 次此段按照格式随机生成 生成后要保存<key>password</key><string>123456789</string>//apple密码<key>rmp</key><string>0</string><key>createSession</key><string>true</string><key>why</key><string>purchase</string></dict></plist>

注意重定向
发包后响应 HTTP/1.1 200 则登录成功
返回内容会看到账号信息


示例程序如下

代码地址:
itunes登录示例代码

有问题可以私信 欢迎交流

← 返回列表