更新readme

pull/67/head
pppscn 3 years ago
parent 0727ef8bf0
commit 7418a937c6

@ -18,6 +18,8 @@
* 如果任何单位或个人认为该项目的代码/APK可能涉嫌侵犯其权利则应及时通知并提供身份证明所有权证明我们将在收到认证文件后删除相关代码/APK。
* 隐私声明SmsForwarder 不会收集任何您的隐私数据APP启动时发送版本信息发送到友盟统计手动检查新版本时发送版本号用于检查新版本除此之外没有任何数据
--------
## 特点和准则:
@ -77,7 +79,7 @@
> ⚠ 该APP打开后会自动后台运行并在任务栏显示运行图标请勿强杀退出后请重新开启并加入到系统白名单中并允许后台运行
> ⚠ 近期接收到部分用户反馈,`SmsForwarder`无法正确转发通知类短信,涉及 ROM 有华为 EMUI 和 小米 MIUI。这两个系统提供了验证类短信安全保护功能,导致验证码不能正常通过广播获得。以下是解决方案
> ⚠ 近期接收到部分用户反馈,`SmsForwarder`无法正确转发通知类短信(普通短信正常),涉及 ROM 有华为 EMUI、小米 MIUI、VIVO OriginOS、OPPO ColorOS等。国内厂商定制系统提供了验证类短信安全保护功能,导致验证码不能正常通过广播获得。以下是解决方案
> ⚠ 风险警示:转发验证码可能导致您的个人隐私、账户安全受到损害,如果您已经知晓该风险,请继续进行以下操作。
@ -91,6 +93,10 @@
> 安全中心 > 授权管理 > `短信转发器` > 权限 > 勾选通知类短信
> vivo 手机:
> 信息 > 左上角3个点 > 设置 > 隐私保护 > 关闭验证码安全保护开关
### 发送方设置参考
#### 钉钉机器人

@ -3,7 +3,7 @@
buildscript {
repositories {
google()
jcenter()
mavenCentral()
maven { url "https://jitpack.io" }
maven { url 'https://repo1.maven.org/maven2/' }
}
@ -16,7 +16,7 @@ buildscript {
allprojects {
repositories {
google()
jcenter()
mavenCentral()
maven { url "https://jitpack.io" }
maven { url 'https://repo1.maven.org/maven2/' }
}

@ -3,8 +3,8 @@
> ⚠ 有一个已经实现好的站点[消息通知](https://msg.allmything.com)
### 请求体如下
> post form
参数:
> post form 参数:
| key | 类型 | 说明 |
| ---- | ---- | ---- |
@ -17,19 +17,21 @@
* sign部分参考借鉴了[阿里钉钉群机器人的sign生成](https://developers.dingtalk.com/document/app/custom-robot-access)
### sign校验规则
把timestamp+"\n"+密钥当做签名字符串使用HmacSHA256算法计算签名然后进行Base64 encode最后再把签名参数再进行urlEncode得到最终的签名需要使用UTF-8字符集
| 参数 | 说明 |
| ---- | ---- |
| timestamp | 当前时间戳单位是毫秒建议验证与请求调用时间误差不能超过1小时防止重放欺骗 |
| secret | 密钥web通知设置页面secret |
把timestamp+"\n"+密钥当做签名字符串使用HmacSHA256算法计算签名然后进行Base64 encode最后再把签名参数再进行urlEncode得到最终的签名需要使用UTF-8字符集 | 参数 | 说明 | | ---- | ---- | | timestamp | 当前时间戳单位是毫秒建议验证与请求调用时间误差不能超过1小时防止重放欺骗 | | secret | 密钥web通知设置页面secret |
示例:
```Java
//java
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class Test {
public static void main(String[] args) throws Exception {
@ -38,9 +40,9 @@ public class Test {
String stringToSign = timestamp + "\n" + secret;
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256"));
byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)),"UTF-8");
mac.init(new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));
byte[] signData = mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8));
String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
System.out.println(sign);
}
@ -67,6 +69,7 @@ print(timestamp)
print(sign)
```
```python
#python 2.7
import time

Loading…
Cancel
Save