本地pom文件:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.adv.cn
monitor
0.0.1-SNAPSHOT
jar
monitor
http://maven.apache.org
UTF-8
junit
junit
3.8.1
test
com.aliyun
aliyun-java-sdk-core
3.2.3
com.aliyun
aliyun-java-sdk-dysmsapi
1.0.0-SANPSHOT
system
${project.basedir}/lib/aliyun-java-sdk-dysmsapi-1.0.0-SANPSHOT.jar
monitor
org.apache.maven.plugins
maven-jar-plugin
true
lib/
com.cn.monitor.SmsDemo
org.apache.maven.plugins
maven-dependency-plugin
copy
package
copy-dependencies
${project.build.directory}/lib
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
解释问题
1、阿里云的接口是采用hamc-sha1算法进行签名计算,以确保接口调用的安全性。
2、java和C#都调整了hamc-sha1算法的实现路径。
解决问题java:
一般发生在jdk8上,部分jdk7也有
第一步,需要核实/jre/lib/ext下是否有sunjce_provider.jar
第二步、核对java启动环境是否加载了“sunjce_provider.jar”(直接将sunjce_provider.jar复制到工程jar目录libs亦可实现强行加载)
即 cp /soft/jdk1.X.X_XX/jre/lib/ext/sunjce_provider.jar /../api_demo/alicom-dysms-api/libs/
附网上帮助
Copying sunjce_provider.jar from $JAVA_HOME/jre/lib/ext to the lib directory of the container.
Adding the following line to my code:
java.security.Security.addProvider(new com.sun.crypto.provider.SunJCE());
解决问题C#版:
发生在从net2.0net3.5net4.0 升级到core2.0时候。
1、命名空间都发生了变化,不能使用参数实例化对象。
即将Aliyun.Acs.Core.Auth.ShaHmac1的46行 KeyedHashAlgorithm.Create("HMACSHA1")改为 new HMACSHA1()。
https://github.com/aliyun/aliyun-openapi-net-sdk/blob/master/aliyun-net-sdk-core/Auth/ShaHmac1.cs
using (var algorithm = new HMACSHA1())// KeyedHashAlgorithm.Create("HMACSHA1"))
jdk的问题 看下配置环境的jdk ext目录下有sunjce_provider.jar就可以 jre的话好像都没有