电脑技术
publickeytoken(publickeytoken 5612)
2023-04-15 01:46  

一、publickeytoken说明

1、定义:publickeytoken是.Net程序集中全局唯一标识符,它是平台为程序集生成的16位校验码,任意的程序集都有它的唯一的publickeytoken,用来标识这个程序集,这个校验码在注册表中也可以用来指定程序集来安装,系统中对应的每个程序集都有一个publickeytoken,这个publickeytoken是可以通过Microsoft .Net 的 Strong Name(强名称指令)来获得,它能够确定程序集的唯一身份,在.Net程序集中,只有完全一样的strong name,才会被视为同一个程序集,否则会被视为两个不同的程序集。

2、格式:publickeytoken是一个16字节的哈希字节序列,包含8个十六进制的数字。例如:b03f5f7f11d50a3a 是一个publickeytoken的例子。

3、使用:publickeytoken使用在.Net程序集依赖然后,为运行时文件引用服务,每个.Net程序集都有自己的一个与唯一的publickeytoken.Net框架会根据publicøey token来确定每个程序集,以此来确定带运行时文件的程序集。

4、用法:运行时文件需要根据publickeytoken来寻找对应的程序集,因此,在绑定时,publickeytoken是非常重要的,如果publickeytoken不对,会导致发布的程序无法正常运行。例如,在客户端使用Strong Name指令来指明引用程序集时,需要提供publickeytoken,例如\"/reference:, \"。

5、用处:publickeytoken确保引用的程序集是受信任的,也确保程序集的安全,因此具备重要的安全性和完整性意义,以及可以从注册表中安装dll程序集。

6、特点:publickeytoken是应用程序的唯一识别,保证安全可靠。它是一个16字节的字符串,可以把程序集与其他元数据拼接起来,体现出.NET程序集的完整性。publickeytoken也可以通过机器码自动生成,无论是长度为一的加载参数还是长度为几的补充参数,它都会放在程序集的头部,从而在程序集改变后保留并被.NET程序集所识别。

7、作用:publickeytoken能够进行集成的验证,以防止不安全的集成,并防止他人伪造程序集。publickeytoken是.NET以一种非常独特的方式给程序集签署一个16为的字符串,把我们的程序集绑定到一个安全可靠的全局唯一标识符,能够起到安全性的保障。

Public key token 是 .NET Framework 针对 Strong Name 公开签名的一个关键部分,主要用来验证和确定程序集的身份。

(1)什么是 Public Key Token?

Public key token 是 .NET Framework 针对 Strong Name签名的一个机制,它是由程序集的公钥的哈希值构成的一个强固态HASH值。用户可以将其作为该程序集的一个标识符,用于识别当前或未来版本的程序集是否是来自同一发行者。

(2) Public Key Token如何与程序集相关?

Public key token 与程序集的strong name有关。当发布一个程序集时,必须对其进行Strong Name签名。Strong Name由一个公钥和一个私钥组成。给程序集进行Strong Name签名后,会从公钥计算出一个public key token值,作为该程序集的唯一标识。

(3)Public Key Token的优点

(a)Public key token可以防止恶意的程序集侵入:

由于Public key token的使用,将可以有效防止恶意的程序集入侵系统。因为其他程序集都有自己的唯一标示,所以使得伪造或者替换同一特性的程序集变得非常困难。

(b)Public key token可以确定该程序集是由一个可信的发行者发行的:

由于每个Public key token的计算依赖于强签名的公钥,显然只有拥有公钥的发行者才能发行合法的程序集,因此这将向用户提供了一个依据,以确定程序集的可信程度。

(4)Public Key Token的缺点

(a)Public Key Token不可能使相同的程序集在不同的环境下运行:

由于每个Public key token依赖于特定的公钥,因此不可能把一个已经强签名的程序集在不同环境下运行,也就是说,如果我们想把一个程序集由一台服务器转移到另一台,那么我们必须为每台服务器重新生成public key token。

(b)Public Key Token会增加部署的复杂度:

由于Public key token依赖强签名,如果要发布一个程序集到多个服务器,则需要给每个服务器都重新生成public key token,这将会增加部署的复杂度。

发表评论
0评