GCM(Google Cloud Message for Android)是Google发布的Android服务器推送(push)技术。之前的C2DM(Android Cloud to Device Messaging)已与2012年6月26日被正式弃用,使用GCM,需要申请开通Google apis,Google apis包括了所有Google服务的api,比如Google Map、Google+、Analytics、YouTube等等,申请地址为: Google API 网站
GCM有以下特点:
- 可以使用第三方应用服务器向Android应用推送消息
- GCM不保证发送的消息的顺序,也不保证消息一定能够推送到手机(恩,谁也不能保证100%)
- Android应用不需要运行就可以接收消息(是的,你没有看错,因为gcm被集成到系统中了,目前一些第三方的推送是在后台运行一个service维持长连接,与这些第三方推送相比,GCM不额外的耗电)
- GCM只传递的数据(可以传递小于4kb的数据),对这些数据的处理可以全部由开发者控制(Google不对数据进行任何处理,仅仅转发一下而已)
- 对于Android4.04以上的系统使用GCM没有任何限制(国行手机也可以使用,截止2013年02月04日,android4.0+的份额为42.6%,随着4.0+版本的提升,Android的推送不再成为一个问题 Android版本分布),Android2.2以上的系统需要安装Google Play Store,Android2.2以下的系统不能够使用GCM
- 对于Android3.0以前的系统,需要在设备上设置google账号
- gcm一次最多只能向1000部设备发送消息,没有提供向所有用户发送的接口(可能google认为向应用程序推送的消息都是与该用户相关的,如果你非要实现群发,一次发送1000个用户,多发送几次就行了)
GCM使用流程如下图所示:
App是运行在Android手机上的应用程序,GCM Server是Google的GCM服务器,Our Server是第三方应用服务器。具体流程如下:
- App发送 SenderID到GCM Server注册接收推送信息(SendID是开发者在Google的网站开通GCM服务时,创建项目的项目号)。
- GCM Server 向App返回RegId(RegId是GCM服务器通过一定算法生产的,可以唯一确定某一部手机上的某一个应用,这个RegId很重要)。
- App向Our Server发送RegId(推送消息的时候要使用RegId,GCM服务器是使用RegId来确定某一部手机上的某一个应用接收消息的,所以第三方服务器需要保存它,需要注意的是RegId很长,比如可能有183位,存数据库时需要注意字段长度)
- Our Server向GCM Server发送消息,传递appkey和RegId(appkey分为Oauth api key和simple api key)
- GCM Server把消息推送给App
相关推荐
AES GCM(Advanced Encryption Standard Galois/Counter Mode)是一种基于AES(高级加密标准)的块密码模式,用于提供数据的保密性和完整性。在GCM模式下,AES不仅用于加密,还用于生成消息认证码(MAC),从而实现...
AES-GCM(Advanced Encryption Standard Galois/Counter Mode)是一种基于AES(高级加密标准)的块密码模式,用于提供数据的保密性和完整性。在网络安全和数据保护领域,它被广泛应用于加密通信、存储加密以及安全...
GCM(Galois/Counter Mode)是AES的一种模式,提供了数据完整性检查和认证功能,通常用于保护数据在传输过程中的安全。SIV(Synthetic Initialization Vector)则是一个更安全的AEAD(Authenticated Encryption with...
AES-GCM(Advanced Encryption Standard - Galois/Counter Mode)是一种基于AES(高级加密标准)的块加密模式,常用于提供数据的机密性和完整性。在Android系统中,Appropriate AoD(Appropriate for On-Device)是...
### AES128加密算法的GCM工作模式详解 #### 引言 本文档主要介绍了一种名为Galois/Counter Mode(GCM)的高级加密标准(AES)的工作模式。GCM是一种高效的、可认证的加密技术,适用于高速硬件加密场景以及软件实现...
AesTestTool为加密软件,支持GCM 和 ECB两种模式 128bit秘钥 GCM算法是一个C++工程,“C++gcm算法工程”目录里面有源码 加密软件是用C#写的,所以把C++工程编译成了dll文件,由C#调用 “软件工程目录”文件夹是...
**AES GCM 算法源码解析** AES(Advanced Encryption Standard)是高级加密标准,是一种广泛应用的块密码,以其高效、安全著称。GCM(Galois/Counter Mode)是AES的一种加密模式,它提供了数据加密以及消息认证代码...
GCM(Galois/Counter Mode)和GMAC(Galois Message Authentication Code)是密码学中的两种重要算法,主要用于数据加密和完整性校验。它们都基于AES(Advanced Encryption Standard,高级加密标准)算法,为现代...
GCM(Galois/Counter Mode)是一种使用AES的加密模式,它结合了CTR(Counter Mode)的流加密效率和CBC-MAC(Cipher Block Chaining Message Authentication Code)的认证能力,提供了数据的保密性和完整性。GCM模式...
GCM能够以低成本和低延迟硬件实现来达到高速度,而软件实现则可以通过使用基于表驱动的域操作来实现优秀性能。GCM的实现依赖于具有良好理论基础的机制,其安全性基于关于块密码安全性的单一合理假设。 由于现代通信...
高版本AES-GCM模式加密的Shiro漏洞利用1 高版本AES-GCM模式加密的Shiro漏洞利用1是指在Shiro框架中,使用高版本AES-GCM模式加密时出现的漏洞利用问题。Shiro框架在高版本中更换了加密算法,从AES-CBC换成了AES-GCM...
**AES GCM、ECB和KeyWrap算法详解** 在信息安全领域,加密算法是保护数据安全的重要手段。AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,提供了多种工作模式,如GCM(Galois/Counter Mode)、...
GCM(Galois/Counter Mode)是一种用于块密码的加密模式,它结合了CBC(Cipher Block Chaining)和CTR(Counter)模式的优点,并增加了认证功能。AES(Advanced Encryption Standard)是目前广泛采用的对称加密算法...
### Android 推送 GCM详解 #### 一、概述 Google Cloud Messaging for Android(简称GCM)是一项由Google推出的全新推送服务,旨在替代原有的Cloud to Device Messaging(C2DM)。这项服务为开发者提供了从服务器...
AES128-GCM是一种广泛应用于现代网络安全的高级加密标准(AES)的变种,它结合了加密和消息认证码(MAC),以提供数据的保密性和完整性。在电表通信和数据保护中,这种安全机制尤其重要,因为它能确保计量数据不被...
AES-GCM(Advanced Encryption Standard Galois/Counter Mode)是一种基于AES(高级加密标准)的块密码模式,用于提供数据的保密性和完整性。在Python中实现AES-GCM算法可以帮助开发者构建安全的数据传输系统,确保...
Android 推送服务(GCM) Android 推送服务(GCM)是 Google Cloud Messaging for Android 的缩写,它是一个能够帮助开发者从服务器端发送数据到运行在 Android 手机上的应用的服务。下面是 GCM 的详细介绍和开发...
AES-GCM架构是一种加密技术,它结合了高级加密标准(AES)和伽罗瓦/计数器模式(GCM),旨在提供数据加密和身份验证。GCM由David A. McGrew和John Viega开发,是一个用于提供机密性和认证的对称块密码模式,它的特点...
Android GCM(Google Cloud Messaging)是谷歌提供的一种用于在服务器和Android设备之间进行实时消息传递的服务。这个"android-GCM开发代码"压缩包显然包含了实现GCM功能的源代码,而不是预编译的jar包,这意味着你...
AES-GCM(Advanced Encryption Standard - Galois/Counter Mode)是一种基于AES(高级加密标准)的块加密模式,它集成了加密和消息认证码(MAC),为数据提供了保密性和完整性保护。这种模式在许多网络通信、存储和...