解决:NoSuchAlgorithmException: Algorithm HmacSHA1 not available

windows下运行macInstance = Mac.getInstance("HmacSHA1");完全正常,Linux下则出现异常:

java.security.NoSuchAlgorithmException: Algorithm HmacSHA1 not available
  at javax.crypto.Mac.getInstance(DashoA13*..);主要原因是linux下缺少依赖包。解决方法:    在windows下打开目录$JAVA_HOME/jre/lib/ext/,找到sunjce_provider.jar,然后拷贝至linux下对应的目录即可。

可参考:http://docs.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html

时间: 2024-10-22 03:18:35

解决:NoSuchAlgorithmException: Algorithm HmacSHA1 not available的相关文章

一段JAVA签名算法的PHP改写

源代码是这样的: public class AuthorizationSignature { public static String createSignature(String verb, String contentMD5, String contentType, String date, String canonicalizedSALHeaders, String canonicalizedResource) { String signatureStr = verb + "\\n&quo

CURLOPT_SSL_VERIFYPEER CURLOPT_SSL_VERIFYHOST

w /** * Set curl options relating to SSL. Protected to allow overriding. * @param $ch curl handle */ // protected function setSSLCurlOptions($ch) { // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); //

MD5算法--Java类MessageDigest实现

1 /* 2 * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. 3 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 * 13 * 14 * 15 * 16 * 17 * 18 * 19 * 20 * 21 * 22 * 23 *

黄聪:OTP动态密码_Java代码实现

OTP认知 动态口令(OTP,One-Time Password)又称一次性密码,是使用密码技术实现的在客户端和服务器之间通过共享秘密的一种认证技术,是一种强认证技术,是增强目前静态口令认证的一种非常方便技术手段,是一种重要的双因素认证技术,动态口令认证技术包括客户端用于生成口令产生器的,动态令牌,是一个硬件设备,和用于管理令牌及口令认证的后台动态口令认证系统组成. 一.OTP历史溯源 动态口令(OTP)有一个同名确不同翻译的前辈,一次性密码(OTP, One-Time Pad),也叫密电本,是

springboot操作mongodb

springboot操作mongodb 采用MongoRepository操作mongodb springboot版本2.1.2.RELEASE 注意的是:在运行应用程序时,会报错OSS Algorithm HmacSHA1 not available异常 将eclipse的jre环境重新设置为jre目录,而不是jdk目录. 链接:https://pan.baidu.com/s/1pTGDR2sM99iwbHE-PR606A 提取码:pell 原文地址:https://www.cnblogs.c

windows用SSH和linux同步文件&linux开启SSH&ssh client 报 algorithm negotiation failed的解决方法之一

1.安装.配置与启动 SSH分客户端openssh-client和openssh-server 如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-server sudo apt-get install openssh-server 然后确认sshserver是否启动了: ps -e |grep ssh 如果看到ssh

【Git笔记】"error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm"的解决方法

       备注:本笔记所描述的问题的前提是机器上已安装成功git且通过配置ca证书支持以https方式获取远程仓库,如果使用git时碰到这篇文章描述的问题,那么按那篇文章给出的办法解决即可. 最近从github clone repo时,git clone命令报错如下(以vim代码补全插件youcompleteme为例): $ git clone https://github.com/Valloric/YouCompleteMe.git Cloning into 'YouCompleteMe'

algorithm之排序算法--待解决

简述:排序算法,参见http://www.cplusplus.com/reference/algorithm/?kw=algorithm 待解决问题:各种排序算法的实现 /* template <class RandomAccessIterator> void sort (RandomAccessIterator first, RandomAccessIterator last); template <class RandomAccessIterator, class Compare&g

C++_没有STL不能解决的问题之——&lt;algorithm&gt;

这个坑好大,慢慢写 一.非修改式序列操作 1.find() 在区间中查找出某元素第一次出现的位置(注意!!是返回地址值) 1 int main(){ 2 int a[100]={1,2,3,3,3,6}; 3 int *b; 4 b=find(a,a+7,6); 5 cout<<b;//返回地址值 6 cout<<b-a;//返回该元素在数组中出现的第一个位置 7 } 2.for_each() 将一个非修改式函数对象运用到区间中的每个成员 1 void add1(int a){ 2