用shell脚本生成x509pem-和pk8-文件并签名

用shell脚本生成.x509.pem 和.pk8 文件并且signed apk。文章末有完整脚本 -----生成keystore 的文件 keytool -genkey -v -keystore ${KEY_STORE_PATH} -alias ${ALIASES} -storepass ${PASS} -keypass ${PASS} -keyalg RSA -validity 20000 -dname "CN='Android', OU='xxx-shanghai', O='xxx', L='Mountain View', ST='California', C='US'"-keystore 生成文件的路径 -alias 文件别名 -storepass -keypass 密码 -keyalg 加密方式 -validity 有效时间 -dname 把需要的国家 地址 公司名等信息 一次写入使用 java sdk 的keytool 生成keystore 文件。-----把keystore文件转换为pkcs12格式 keytool -importkeystore -srckeystore ${KEY_STORE_PATH} -destkeystore ${DEST_KEY_STORE_PATH} -srcstoretype JKS -deststoretype PKCS12 -deststorepass ${PASS} -srcstorepass ${PASS} -destkeypass ${PASS}-srckeystore keystore文件路径 -destkeystore 生成的pkc12文件路径-----把pkcs12 转成pem,方便可以通过文本方式查看 openssl pkcs12 -in ${DEST_KEY_STORE_PATH} -nodes -out ${DEST_TMP_RSA_PATH} -password pass:${PASS}-in pkcs12 路径, -out 生成的pem 路径 password pass: 密码-----截取pem文件生成.X509.pem .rsa.pem文件 ...

August 7, 2019 · 2 min · jiezi

加密那些事儿

本文旨在帮助大家分清各种加密方式以及用途原理说明,具体的加密算法分析不在本文的主要探讨之内!知识路线graph LR对称加密 --> 非对称加密非对称加密 --> 哈希算法哈希算法 --> 数字签名引入背景:不论是前端还是后端开发中,数字签名、信息加密是经常需要使用到的技术,应用场景包括了用户登入、交易、信息通讯、oauth 等等,不同的应用场景也会需要使用到不同的签名加密算法,或者需要搭配不一样的 签名加密算法 来达到业务目标。 漫画:https://cloud.tencent.com/dev... 早在古罗马时期,加密算法就被应用于战争当中。 在大规模的战争中,部队之间常常需要信使往来,传递重要的军事情报。 传送情报过程中,容易遭到中间人攻击,怎样防止这种情况的发生呢? 古罗马人想出了一种非常朴素的加密方法,被称为凯撒密码。加密的原理就像下图这样: 数据加密过程:在对称加密算法中,数据发送方 将 明文 (原始数据) 和 加密密钥 一起经过特殊 加密处理,生成复杂的 加密密文 进行发送。数据解密过程:数据接收方 收到密文后,若想读取原数据,则需要使用 加密使用的密钥 及相同算法的 逆算法 对加密的密文进行解密,才能使其恢复成 可读明文常见的加密算法介绍常见的加密算法可以大致分为:对称加密算法、非对称加密算法、摘要算法。接下来主要围绕这三种算法进行介绍。对称加密算法(Symmetric-key algorithm)常见的 对称加密 算法主要有 DES、3DES、AES 等原理 讲解常见的集中算法AES、DES、3DES、Blowfish、IDEA、RC4、RC5、RC6常见对称加密算法的原理DES (Data Encryption Standard) 数字加密算法是1977年美国联邦信息处理标准(FIPS)中所采用的一种对称密码。DES一直以来被美国以及其它国家的政府和银行等广泛使用。DES运算速度快、资源消耗较少,但是随着计算机计算能力的增强,DES已经能够在短时间内暴力破解,安全性较低。RSA公司在20世纪末举办过的破译DES密钥的比赛数据显示,到1999年破译密钥只需要22小时15分钟。鉴于DES已经能够在短时间内被破解,现在除了破解之前的密文,已不再推荐使用。3DES(Triple Data Encryption Algorithm) 由于DES已经能够在短时间内被破解,为了增加DES的强度,将DES重复3次的用来替代DES的分组密码3DES被开发出来,也称为TDEA(Triple Data Encryption Algorithm)。 但是,3DES处理速度不高,除了在一些重视向下兼容性的环境中,很少有新的用途,也逐渐被AES所取代。 AES (Advanced Encryption Standard) 高级加密标准是取代DES标准的一种对称加密算法的新标准,最终在2000年从众多候选对称密码算法中选出了Rijndael作为AES。被选为AES的密码算法必须满足一定的条件,比如,算法没有弱点、加密以及密钥准备的速度要够快、实现容易、能够在各平台上有效工,同时,还必须无条件地免费供全世界使用。可以说,被选为AES的算法近乎“完美”。AES加解密机制较复杂,综合运用了逐字节替换、平移行、混合列、与轮密钥进行XOR等,其优点在运算速度快、资源消耗少,且安全性高。前面我们简单介绍了DES、3DES和AES三种对称密码,DES已经能够被暴力破解,3DES也逐渐被AES取代。鉴于AES在其选定过程中经过了全世界密码专家的严谨验证,一般来说,我们在使用的时候应尽量使用AES。 优点与缺点优点:对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。缺点:秘钥的管理和分发非常困难,不够安全。在数据传送前,发送方和接收方必须商定好秘钥,然后双方都必须要保存好秘钥,如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。用途与场景通信过程中的加密数据库存储的敏感信息加密【一般用于保存用户手机号、身份证等敏感但能解密的信息 】思考 在对称加密中,我们应该如何将密钥安全地发送给接收者? 非对称加密算法非对称加密算法,又称为 公开密钥加密算法。它需要两个密钥,一个称为 公开密钥 (public key),即 公钥,另一个称为 私有密钥 (private key),即 私钥。 ...

June 1, 2019 · 2 min · jiezi

App-签名过期或泄露怎么办别担心Google-已经给出解决方案

一、序在将 App 发布到市场之前,很重要的一个步骤就是为 APK 进行签名,大部分时候,这个操作隐藏在了打包的流程中,而不被我们注意到。 签名的作用,除了证明 App 的所有权之外,还可以帮助 Android 市场和设备校验 APK 的正确性 Android 签名是自证明的,并不会对证书进行 CA 认证。也就是我们可以使用工具自行生成签名证书,只要是一个正确的签名,系统就会承认,并且允许安装。 生成签名的时,可以指定一个有效时间,这个时间默认为 25 年,并且 Google Play 也有硬性规定,上架的 App 签名有效期必须在 2033-10-22 日期之后。所以只要不是手欠修改了这个有效期,在当下这个时刻,是不会有问题,毕竟到现在还没有一款 App 存在 25 年。 有些问题不在眼前,却是真实存在的。对于一款上架的 App,最重要的就是用户,而当签名失效之后,我们只能被迫换签名,此时因为签名校验无法通过,就会导致旧用户无法覆盖安装。这些历史用户唯一的选择,就是卸载后重新安装。 好在这不仅仅是你我的问题,天塌下来有个子高的顶着,所以别担心,Google 已经着手在解决这个问题了。 方案就是 Android 9.0 新增的对 APK V3 签名的支持。 二、新的签名方案 V32.1 Android 的签名方案Android 的签名方案,发展到现在,不是一蹴而就的。Android 现在已经支持三种应用签名方案: V1 方案:基于 JAR 签名。V2 方案:APK 签名方案 V2,在 Android 7.0 引入。V3 方案:APK 签名方案 V3,在 Android 9.0 引入。V1 到 V2 是颠覆性的,为了解决 JAR 签名方案的安全性问题,而到了 V3 方案,其实结构上并没有太大的调整,可以理解为 V2 签名方案的升级版,有一些资料也把它称之为 V2+ 方案。 ...

May 14, 2019 · 2 min · jiezi