更新readme
This commit is contained in:
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…
Reference in New Issue