生成新证书的申请时,该申请中的信息先从申请程序发送到 CryptoAPI。CryptoAPI 向安装在计算机上或计算机可以访问的设备上的 CSP 提供正确的数据。如果 CSP 是基于软件的,则它在计算机上生成一个公钥和一个私钥,这两个密钥通常称为密钥对。如果 CSP 是基于硬件(如智能卡 CSP)的,则它指导一个硬件生成密钥对。
密钥生成后,基于软件的 CSP 将对私钥进行加密,从而保护私钥的安全。智能卡 CSP 将私钥存储在智能卡上。然后智能卡控制对密钥的访问。
公钥连同证书申请者信息一起发送到证书颁发机构 (CA)。CA 根据其策略验证证书申请后,将使用自己的私钥在证书中创建数字签名,然后将证书颁发给申请人。CA 将证书交给证书申请人,同时可以选择将该证书安装在计算机或硬件设备上适当的证书存储中。在各种证书导入的过程中,许多人都会出现提示:“发生一个内部错误。配置文件无法访问或者您正在导入的私钥需要一个加密服务提供程序,但您的系统上没有安装该提供程序。“
所谓的配置文件无法访问,一般是你没有用管理员的账户登录,没有管理员权限。
而所谓的需要一个加密服务提供程序,这边给出几个步骤来解决:
运行services.msc,开启Cryptographic Service,或者在命令行中输入net start cryptsvc ,查看系统服务。
如果Cryptographic Service是系统自动启动的,则检查HTTP SSL这个服务是否启动;如果还是正常的
那么则查看Encrypting File System(加密文件系统)是否启动,不是的话改成自动启动。
其实出现这些问题的关键就是有些系统服务没有开启导致的。如果以上两个服务启动之后还是不能解决问题的话,这边我把正常情况下应设为启动的系统服务表列出,只要下表中的服务都启动了,该问题就能解决了。加密服务提供程序 (CSP) 是 Windows *** 作系统中提供一般加密功能的硬件和软件组件。
可以编写这些 CSP 以提供各种加密和签名算法。
配置为由某个证书模板使用的每个 CSP 都可以潜在支持不同的加密算法,因此,可以支持不同的密钥长度。
这意味着,必须将证书模板配置为支持一个或多个 CSP。
选择特定的 CSP,可让管理员控制此证书使用的算法和密钥长度。
Windows Server 2003 家族包含许多 CSP,但还可添加其他 CS。
微软制订的CSP接口(Cryptographic Service Provider),是为Windows系列 *** 作系统制订的底层加密接口,实现数据的加密、解密、数字签名、验证和数据摘要等密码 *** 作。
应用通过CryptoAPI系列函数调用,其 *** 作对象为容器,一个容器内有加密公私钥对、加密证书、签名公私钥对和签名证书。
可以通过容器完成加解密、签名验签等 *** 作。
CSP加密服务提供者(Cryptographic Service Provider)具有一下几个特点:
CSP是真正执行密码运算的独立模块
物理上一个CSP由两部分组成:一个动态连接库,一个签名文件
签名文件保证密码服务提供者经过了认证,以防出现攻击者冒充CSP
若加密算法用硬件实现,则CSP还包括硬件装置
Microsoft通过捆绑RSA Base Provider,在 *** 作系统中提供一个CSP,使用RSA公司的公钥加密算法,更多的CSP可以根据需要增加到应用中。
Windows 2000以后自带了多种不同的CSP
CSP服务体系从系统结构,系统调用层次方面来看,分为相互独立的三层(如上图:服务分层体系):
1)最底层是加密服务提供层,即具体的一个CSP,它是加密服务提供机构提供的独立模块,担当真正的数据加密工作,包括使用不同的加密和签名算法产生密钥,交换密钥、进行数据加密以及产生数据摘要、数字化签名它是独立于应用层和 *** 作系统,其提供的通用的SPI编程接El与 *** 作系统层进行交互;有些CSP使用特殊硬件一起担当加密工作,而有些则通过RPC分散其功能,以达到更为安全。
2)中间层,即 *** 作系统(0S)层,在此是指具体的Win9X、NT和2K及更高版本的32位 *** 作平台,在CSP体系中,以及为应用层提供统一的API接口,为加密服务提供层提供SPI接口, *** 作系统层为应用层隔离了底层CSP和具体加密实现细节,用户可独立各个CSP进行交互它担当一定管理功能,包括定期验证CSP等。
3)应用层,也就是任意用户进程或线程具体通过调用 *** 作系统层提供的Crypto API使用加密服务的应用程序。
根据CSP服务分层体系,应用程序不必关心底层CSP的具体实现细节,利用统一的API接口进行编程,而由 *** 作系统通过统一的SPI接口来与具体的加密服务提供者进行交互,由其他的厂商根据服务编程接口SPI实现加密、签名算法,有利于实现数字加密与数字签名。
应用程序中要实现数字加密与数字签名时,一般是调用微软提供的应用程序编程接口Crypto API。应用程序不能直接与加密服务提供者(CSP)通信,只能通过Crypto API *** 作系统界面过滤后,经过Crypto SPI系统服务接口与相应的CSP通信。CSP才是真正实现所有加密 *** 作的独立模块。
点击阅读全文
打开CSDN APP,看更多技术内容
poker-cpp-cards-mixer-win32:使用 dSFMT 和 Windows 加密服务提供程序 (CSP) 在 C++ 中混合设置扑克牌的快速示例
扑克-cpp-cards-mixer-win32 使用 dSFMT 混合扑克牌并通过利用 C++ 中的 wincrypt api 调用 Windows 加密服务提供程序 (CSP) 的快速示例 遵循与 PKR.fr 相同的建议(参见此处: ://www.pkr.fr/fr/support/licensing-and-integrity/monthly-certificates/) “为了形成随机数生成器的种子,调用应用程序提供它可能具有的位(例如鼠标或键盘计时输入),然后将这些位与存储的种子和各种系统数据和用户数据(例如进程 ID)结合起来和线程 ID、系统时钟、系统时间、系统计数器、内存状态、空闲磁盘簇、散列的用户环境块。这个结果用于为伪随机数生成器 (PRNG) 做种子"" 请参阅文档: : 更多信息: 什么是SFMT? “SFMT 是 Mersenne Twister
CSP加密服务(一)
(一) 加密服务提供程序 缩写为:CSP,全称为:Cryptographic Service Provider 即加密服务提供者。它是windows系统中提供的用于加密的软硬件组件。通过对微软的加密应用程序接口即CrytoAPI(或CAPI)的编程访问它来提供身份验证、编码和各种的加密、签名算法。 如下图: 应用程序不是直接与某个CSP通信。它会调用CAPI的函数,然后 *** 作系统...
继续访问
热门推荐 CSP开发基础--CSP入门简介
CSP加密服务提供者(Cryptographic Service Provider)具有一下几个特点: CSP是真正执行密码运算的独立模块物理上一个CSP由两部分组成:一个动态连接库,一个签名文件签名文件保证密码服务提供者经过了认证,以防出现攻击者冒充CSP若加密算法用硬件实现,则CSP还包括硬件装置Microsoft通过捆绑RSA Base Provider,在 *** 作系统中提供一个CSP,使
继续访问
CSP开发基础--数字证书调用CSP过程
加密服务提供程序 (CSP) 是执行身份验证、编码和加密服务的程序,基于 Windows 的应用程序通过 Microsoft 加密应用程序编程接口 (CryptoAPI) 访问该程序。每个 CSP 提供不同的 CryptoAPI 实现。某些提供更强大的加密算法,而另外一些则使用硬件组件(如USBkey)。密钥对的产生是证书申请过程中重要的一步,其中产生的私钥由用户保留,公钥和其他信息则交于CA中心
继续访问
加密服务提供(csp)的实现与开发
描述了csp的原理和开发方法。 Microsoft提供的加密应用程序接口(即Cryptography API),或称CryptoAPI,它可以方便地在应用程序中加入强大的签名和加密功能,而不必考虑基本的算法。CryptoAPI是一组函数,为了完成数学计算,必须依赖密码服务提供者模块(CSP 即)。CSP可以与特殊硬件设备(如硬件key)一起来进行数据密码运算。
Microsoft Windows® 2000的加密服务提供程序(CSP, Cryptographic Service Provider)
CSP是真正实行加密的独立模块,他既可以由软件实现也可以由硬件实现。但是他必须符合CryptoAPI接口的规范。每个CSP都有一个名字和一个类型。每个CSP的名字是唯一的,这样便于CryptoAPI找到对应的CSP。目前已经有9种CSP类型,并且还在增长。每个CSP有一个密钥库,密钥库用于存储密钥。而每个密钥库包括一个或多个密钥容器(Key Containers)。每个密钥容器中含属于一个
继续访问
MicroSoft CSP CryptoAPI教程
CryptoAPI(一个应用程序编程接口)目的就是提供开发者在Windows下使用PKI的编程接口。CryptoAPI提供了很多函数,包括编码、解码、加密、解密、哈希、数字证书、证书管理和证书存储等功能。对于加密和解密,CryptoAPI同时提供基于会话密钥和公钥/私钥对的方法。
stcrypt:支持Windows 7的Dstu4145,Gost28147,Gost34311的加密提供程序(CSP和CNG)的实现
加密 实施Windows 7的Dstu4145,Gost28147,Gost34311支持的密码提供程序(CSP和CNG)。 (不包括实际的低级第三方加密库)
novaordis-crypto-provider:自定义 JCA 加密服务提供程序
novaordis-crypto-provider 自定义 JCA 加密服务提供程序
最新发布 JAVA加密--JCA、JCE、CSP概念、体系架构与使用示例
讲解JCA、JCE、CSP概念及JCA的体系架构,并以MD5加密,演示如何基于JCA进行数据加密
继续访问
用CryptoAPI进行数据加密
VCKBASE Online Help Journal No.10 用CryptoAPI进行数据加密 南京理工大学计算机系 胡静 李蔚清 ---- 因为过于复杂的加密算法实现起来非常困难,所以在过去,许多应用程序只能使用非常简单的加密技术,这样做的结果就是加密的数据很容易就可以被人破译。而使用Microsoft提供的加密应用程序接口(即Cryptography AP...
继续访问
部署国密SSL证书,建立HTTPS加密 “备胎”计划
随着中美贸易摩擦的出现,前有针对中兴的“七年封禁”,后有针对华为的“断供”制裁,我国众多行业领域都需要思考一个问题:如果本行业的核心技术或产品对美依赖性过强,一旦出现类似的“断供”事件,该如何应对?在数字证书领域也存在禁售先例,比如美国一直对部分启动制裁的国家禁售SSL证书。 HTTPS加...
继续访问
你可能需要在onStart()方法里另起一个线程,在这个线程里可以while(true).\x0d\x0aprotected override void OnStart(string[] args)\x0d\x0a{\x0d\x0a// TODO: Add code here to start your service.\x0d\x0aif (threadforwork == null)\x0d\x0a{\x0d\x0athreadforwork = new Thread(workFunction)\x0d\x0a}\x0d\x0athreadforwork.IsBackground = true\x0d\x0athreadforwork.Start()\x0d\x0a}\x0d\x0a在onStop()里面将线程杀掉\x0d\x0a protected override void OnStop()\x0d\x0a{\x0d\x0a // TODO: Add code here to perform any tear-down necessary to stop yourservice. \x0d\x0aif (threadforwork != null)\x0d\x0a{\x0d\x0aif (threadforwork.ThreadState == System.Threading.ThreadState.Running)\x0d\x0a{\x0d\x0athreadforwork.Abort()\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0a}Android开发中,当需要创建在后台运行的程序的时候,就要使用到Service。Service 可以分为有无限生命和有限生命两种。
特别需要注意的是Service跟Activities是不同的(简单来说可以理解为后台与前台的区别),例如,如果需要使用Service的话,需要调用startService(),从而利用startService()去调用Service中的OnCreate()和onStart()方法来启动一个后台的Service。
启动一个Service的过程如下:context.startService() ->onCreate()- >onStart()->Service running其中onCreate()可以进行一些服务的初始化工作,onStart()则启动服务。
停止一个Service的过程如下:context.stopService() | ->onDestroy() ->Service stop
接下来的实例是一个利用后台服务播放音乐的小例子,点击start运行服务,点击stop停止服务。ServicesDemo.java(是一个Activity)
除此之外还要在Manifest里面声明服务:(AndroidManifest.xml)
定义Service(MyService.java)
layout文件夹中是main.xml
values 文件夹中是strings.xm
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)