A '''strong key''' is a naming convention in computer programming. Multiple components (such as DLLs) may share the same name while differing in version, a situation that can result in versioning conflicts.{{cn|date=December 2025}}
In the Microsoft .NET Framework, a strong key, also known as an SN key or strong name, is used to uniquely identify a component. This identification relies in part on public-key cryptography.<ref>{{Cite web |last=gewarren |title=Strong-named assemblies - .NET |url=https://learn.microsoft.com/en-us/dotnet/standard/assembly/strong-named |access-date=2025-12-30 |website=learn.microsoft.com |language=en-us}}</ref>
Strong names ensure reliable binding between components, or between a root key and a component. However, they do not provide tamper resistance for the files containing those components.<ref>[http://www.codeproject.com/KB/security/NeCoder03.aspx CodeProject: Building Security Awareness in .NET Assemblies : Part 3 - Learn to break Strong Name .NET Assemblies.]</ref> Strong naming is also used as a mechanism to mitigate issues commonly referred to as DLL hell.
The key itself is generated by a separate program as a cryptographic key pair.
==References== {{Reflist}}
==External links== *[http://www.codeproject.com/KB/security/StrongNameExplained.aspx CodeProject: Strong Names Explained] *[http://msdn.microsoft.com/en-us/library/wd40t7ad.aspx MSDN: Strong-Named Assemblies]
{{.NET Framework}}
{{DEFAULTSORT:Strong Key}} Category:Programming constructs Category:.NET terminology
{{compu-prog-stub}}