# RSA、DSA、ECDSA、EdDSA 和 Ed25519 的区别

**URL:** <https://forum.beginner.center/t/topic/1542>\
**Category:** 🛠工具与编程\
**Tags:** 加密算法\
**Created:** [2024 年10 月 18 日 03:08 UTC](https://forum.beginner.center/t/topic/1542 "2024-10-18T03:08:23Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

作者： ![doggie](https://forum.beginner.center/user_avatar/forum.beginner.center/doggie/32/550_2.png) [@doggie](https://forum.beginner.center/u/doggie)\
发布日期： [2024 年10 月 18 日 03:08 UTC](https://forum.beginner.center/t/topic/1542/1 "2024-10-18T03:08:23Z")

</div>

> 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码， 原文地址 [www.cnblogs.com](https://www.cnblogs.com/librarookie/p/15389876.html)

> 用过 ssh 的朋友都知道，ssh key 的类型有很多种，比如 dsa、rsa、 ecdsa、ed25519 等，那这么多种类型，我们要如何选择呢？

## 说明

1. RSA，DSA，ECDSA，EdDSA 和 Ed25519 都用于数字签名，但只有 RSA 也可以用于加密。

2. 其他说明

## 结论

1. ssh key 的类型有四种，分别是 dsa、rsa、 ecdsa、ed25519。

2. 根据数学特性，这四种类型又可以分为两大类，dsa/rsa 是一类，ecdsa/ed25519 是一类，后者算法更先进。

3. dsa 因为安全问题，已不再使用了。

4. ecdsa 因为政治原因和技术原因，也不推荐使用。

5. rsa 是目前兼容性最好的，应用最广泛的 key 类型，在用 ssh-keygen 工具生成 key 的时候，默认使用的也是这种类型。不过在生成 key 时，如果指定的 key size 太小的话，也是有安全问题的，推荐 key size 是 3072 或更大。

6. ed25519 是目前最安全、加解密速度最快的 key 类型，由于其数学特性，它的 key 的长度比 rsa 小很多，优先推荐使用。它目前唯一的问题就是兼容性，即在旧版本的 ssh 工具集中可能无法使用。不过据我目前测试，还没有发现此类问题。

## 总结

> 优先选择 ed25519，否则选择 rsa

Ref

- [https://qastack.cn/ubuntu/363207/what-is-the-difference-between-the-rsa-dsa-and-ecdsa-keys-that-ssh-uses](https://qastack.cn/ubuntu/363207/what-is-the-difference-between-the-rsa-dsa-and-ecdsa-keys-that-ssh-uses)
- [https://segmentfault.com/a/1190000020166520](https://segmentfault.com/a/1190000020166520)
