加密NULL

时间:2017-02-21 10:45:55

标签: java encryption block-cipher

在使用Javax.crypto密码(更具体的AES128/CBC/PKCS5Padding)时,doFinal在将NullPointerException作为方法参数传递给null时会抛出null

有没有办法加密null,以便在将其保存到数据库时,我不会将null存储为#This valid till 4 digit number numbers={1:'one', 2:'two', 3:'three', 4:'four', 5:'five', 6:'six', 7:'seven', 8:'eight', 9:'nine', 10:'ten', 11:'eleven', 12:'twelve', 13:'thirteen', 14:'fourteen', 15:'fifteen', 16:'sixteen', 17:'seventeen', 18:'eighteen', 19:'nineteen', 20:'twenty', 30:'thirty', 40:'forty', 50:'fifty', 60:'sixty', 70:'seventy', 80:'eighty', 90:'ninety', 100:'hundred', 1000:'thousand'} def my_fun(num): list = [] num_len = len(str(num)) - 1 while num_len > 0 and num > 0: while num_len > 0 and num > 0: if num in numbers and num < 1000: list.append(numbers[num]) num_len = 0 elif num < 100: list.extend([numbers[num - num%10], numbers[num%10]]) num_len = 0 else: quotent = num//10**num_len # 4567//1000= 4 num = num % 10**num_len #4567%1000 =567 if quotent != 0 : list.append(numbers[quotent]) list.append(numbers[10**num_len]) else: list.append(numbers[num]) num_len -= 1 return ' '.join(list) 或类似的东西?

2 个答案:

答案 0 :(得分:4)

不,你不能加密NULL ...加密需要一个输入值(NULL不是)。如果绝对必须在数据库中存储加密值,则可以检查加密的值是否为NULL并将其转换为代表值(空字符串,0,无论您的偏好),并在解密时对该值执行类似的检查,并重新返回NULL。但是,在我看来,这是hacky,应该避免 - 最好不要存储任何价值,但我不知道你的情况。

答案 1 :(得分:0)

在尝试加密之前检查null。如果它为null,则不加密它。同样用于解密。