Keys and Key Management

suggest change

While the JCE secures cryptographic operations and key generation, it is up to the developer to actually manage their keys. More information needs to be provided here.

One commonly-accepted best practice for handling keys at runtime is to store them only as byte arrays, and never as strings. This is because Java strings are immutable, and cannot be manually “cleared” or “zeroed out” in memory; while a reference to a string can be removed, the exact string will remain in memory until its segment of memory is garbage-collected and reused. An attacker would have a large window in which they could dump the program’s memory and easily find the key. Contrarily, byte arrays are mutable, and can have their contents overwritten in place; it is a good idea to ‘zero-out’ your keys as soon as you no longer need them.

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you:


Security and cryptography:
* Keys and Key Management

Table Of Contents
8 Arrays
10 Maps
11 Strings
25 JAXB
29 Enums
32 Audio
41 Scanner
63 Logging
75 Lists
78 Sets
89 JAX-WS
96 XJC
98 Process
106 Modules
114 Applets
122 JNDI
139 JavaBean
141 Literals
144 Packages
150 JMX
151 Security and cryptography
153 JShell
159 Sockets
167 Enum Map
175 Hashtable
177 SortedMap