开发者社区> 问答> 正文

阿里云短信服务在本地发送成功,部署到阿里云服务器报错HMAC-SHA1 not supported.

本地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

展开
收起
haaa 2017-08-24 09:52:15 7176 0
4 条回答
写回答
取消 提交回答
  • 解释问题
    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"))

    2019-07-17 21:31:26
    赞同 展开评论 打赏
  • jdk的问题 看下配置环境的jdk ext目录下有sunjce_provider.jar就可以 jre的话好像都没有

    2019-07-17 21:31:26
    赞同 展开评论 打赏
  • 请问解决了没有,在开发环境把java jdk1.7换成1.8就出现这个问题HMAC-SHA1 not supported.

    2019-07-17 21:31:26
    赞同 展开评论 打赏
  • 阿里云论坛版主,QQ 1978638808

    建议工单吧。

    2019-07-17 21:31:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
大规模云服务器高效使用及管理最佳实践 立即下载
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载