以字符串形式存储证书,密码还有用吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Rocketer
V2EX    程序员

以字符串形式存储证书,密码还有用吗?

  •  
  •   Rocketer 2021-03-11 03:13:33 +08:00 3191 次点击
    这是一个创建于 1682 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有些证书的私钥是有密码保护的,使用时需要输入密码。

    现在我要把证书以字符串的形式存到数据库里,那么我是必须存储解密后的证书文本,还是可以直接原样存储证书的文本,保持密码呢?

    对这一块不太懂,求指点,谢谢

    16 条回复    2021-03-11 13:52:55 +08:00
    FucUrFrd
        1
    FucUrFrd  
       2021-03-11 03:17:59 +08:00 via Android
    要 binary 不能是 string, 保持密码,完结。
    Rocketer
        2
    Rocketer  
    OP
       2021-03-11 04:42:29 +08:00
    @FucUrFrd 不好意思,没看懂。

    我知道无密码的证书就是纯文本的,你的意思是有密码的证书是二进制吗?所以我如果存储字符串,就肯定是解密后的了?
    msg7086
        3
    msg7086  
       2021-03-11 04:49:25 +08:00 via Android
    都可以。反正都能储存成文本编码的形式。
    FucUrFrd
        4
    FucUrFrd  
       2021-03-11 05:06:41 +08:00 via Android
    @Rocketer der,pfx 证书就是二进制的,不要烦,一把梭,设计一开始你就要考虑兼容性,万一输入 pfx 难道整个系统推倒重来么
    Rocketer
        5
    Rocketer  
    OP
       2021-03-11 05:56:27 +08:00
    @FucUrFrd 文本型字段是件确定了的事,如果非要存储二进制,那就转成 base64 编码存储。

    我不是证书的使用人,所以我也不太懂,我只负责存储。我就是想知道是不是必须要保存密码。
    ratazzi
        6
    ratazzi  
       2021-03-11 08:10:09 +08:00 via iPhone
    存储解密后的证书就不需要存密码了,但是为了安全要考虑使用信封加密,被脱裤少一点风险
    zhyl
        7
    zhyl  
       2021-03-11 08:33:07 +08:00 via iPhone
    存密码你是存 hash 后的还是原密码呢,证书密钥同理
    ratazzi
        8
    ratazzi  
       2021-03-11 08:44:06 +08:00 via iPhone
    @zhyl 跟密码可完全不一样,证书你给 hash 了还怎么用
    jorneyr
        9
    jorneyr  
       2021-03-11 09:08:14 +08:00
    字符串只是证书二进制的展示形式,方便传输和复制粘贴
    imdong
        10
    imdong  
       2021-03-11 09:34:41 +08:00
    安全考虑,不要存密码了。

    至于字符串和二进制,怎么方便怎么来,反正都能搞定。

    如果有密码就在使用的时候再输入,这样玩意数据泄漏后多少还能安全点。
    zhyl
        11
    zhyl  
       2021-03-11 09:59:51 +08:00
    @ratazzi 只是类比,没让你存哈希后的证书,而是存加密后的证书,用的时候用密钥解密一下不就行了?
    eason1874
        12
    eason1874  
       2021-03-11 11:23:16 +08:00
    直接存证书本身。

    如果不是字符串,转换一下进制不就可以了吗?取出来的时候再转回去,然后解密。
    FucUrFrd
        13
    FucUrFrd  
       2021-03-11 12:24:49 +08:00 via Android
    跟你们码农沟通真他么累,MySQL blob 类型管你什么类型,直接存进去就得了,不需要转换,你是 string 就 varchar,随便你吧
    Rocketer
        14
    Rocketer  
    OP
       2021-03-11 12:35:07 +08:00 via iPhone
    @FucUrFrd 我可没说我是用数据库存储的。

    我已经反复说必须是字符串了,而你从一开始就坚持跑题,我不跟着你跑你还烦躁,你吃枪药了吗?
    annielong
        15
    annielong  
       2021-03-11 12:53:15 +08:00
    加密码的证书应该是用密码再次加密了吧,导入时候根据密码解密,单独保存要么两个字段一个存证书一个存密码,要么只存解密后的证书
    hxndg
        16
    hxndg  
       2021-03-11 13:52:55 +08:00
    @FucUrFrd
    考虑兼容性问题就一把梭可还行,追求兼容性不追求通用性了?

    @Rocketer
    按照道理,证书和私钥分开保存。无论是 PFX 还是 DER 的 FORMAT 的证书都直接转成 PEM 的容器类型保存,读入的时候 d2i 或者 i2d 的转换一下就成。
    私钥就需要单独加密存储了。

    你们在做秘钥管理吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1016 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 18:46 PVG 02:46 LAX 11:46 JFK 14:46
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86