Package: Utilities
Utilities
name | instruction | branch | complexity | line | method | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Utilities() |
|
|
|
|
|
||||||||||||||||||||
fingerprintOfString(String, String) |
|
|
|
|
|
||||||||||||||||||||
fingerprintToString(byte[]) |
|
|
|
|
|
Coverage
1: package it.tidalwave.datamanager.util;/*
2: * *********************************************************************************************************************
3: *
4: * SolidBlue 3: Data safety
5: * http://tidalwave.it/projects/solidblue3
6: *
7: * Copyright (C) 2023 - 2023 by Tidalwave s.a.s. (http://tidalwave.it)
8: *
9: * *********************************************************************************************************************
10: *
11: * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
12: * the License. You may obtain a copy of the License at
13: *
14: * http://www.apache.org/licenses/LICENSE-2.0
15: *
16: * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
17: * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
18: * specific language governing permissions and limitations under the License.
19: *
20: * *********************************************************************************************************************
21: *
22: * git clone https://bitbucket.org/tidalwave/solidblue3j-src
23: * git clone https://github.com/tidalwave-it/solidblue3j-src
24: *
25: * *********************************************************************************************************************
26: */
27:
28: import jakarta.annotation.Nonnull;
29: import java.security.MessageDigest;
30: import java.security.NoSuchAlgorithmException;
31: import java.math.BigInteger;
32: import static java.nio.charset.StandardCharsets.UTF_8;
33:
34: /***********************************************************************************************************************
35: *
36: * @author Fabrizio Giudici
37: *
38: **********************************************************************************************************************/
39: public class Utilities
40: {
41: @Nonnull
42: public static byte[] fingerprintOfString (@Nonnull final String algorithm, @Nonnull final String string)
43: {
44: try
45: {
46: return MessageDigest.getInstance(algorithm).digest(string.getBytes(UTF_8));
47: }
48: catch (NoSuchAlgorithmException e)
49: {
50: throw new RuntimeException(e);
51: }
52: }
53:
54: @Nonnull
55: public static String fingerprintToString (@Nonnull final byte[] bytes)
56: {
57: return ("%0" + (bytes.length * 2) + "x").formatted(new BigInteger(1, bytes));
58: }
59: }