华为OD:敏感字段加密

简介: 华为OD:敏感字段加密

题目描述:

给定一个由多个命令字组成的命令字符串:


1、字符串长度小于等于127字节,只包含大小写字母,数字,下划线和偶数个双引号;

2、命令字之间以一个或多个下划线_进行分割;

3、可以通过两个双引号”"来标识包含下划线-的命令字或空命令字(仅包含两个双引号的命令字) ,双引号不会在命令字内部出现;

请对指定索引的敏感字段进行加密,替换为**(6个*) ,并删除命令字前后多余的下划线_。如果无法找到指定索引的命令字,输出字符串 ERROR。

输入描述:

输入为两行,第一行为命令字索引K(从0开始),第二行为命令字符串S。

输出描述:

输出处理后的命令字符串,如果无法找到指定索引的命令字,输出字符串ERROR。

用例:

Java代码:

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
import java.util.StringJoiner;
import java.util.stream.Collectors;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int k = Integer.parseInt(sc.nextLine());
        String s = sc.nextLine();
        System.out.println(getResult(k,s));    
    }
    public static String getResult(int k,String s){
        StringBuilder stack = new StringBuilder();
        LinkedList<String> result = new LinkedList<>();
        for(int i = 0;i<s.lenth();i++){
            char c=s.charAt(i);
            if(c== '_' &&(stack.length()==0||stack.char) result.add(stack.toString());
            stack=new StringBuilder();        
        }else if(c==''''&&stack.length()!=0){
            stack.append('''');
            result.add(stack.toString());
            stack=new StringBuilder();        
        } else{
            stack.append(c);        
        }   
    }
    if(stack.length()>0)result.add(stack.toString());
    List<String>ans = result.stream().filter(str ->!'''');
    if(k>ans.size()-1) return "ERROR";
    ans.set(k,"*****");
    StringJoiner sj = new StringJoiner("_");
    for(String an:ans)sj.add(an);
    return sj.toString();
}
}


相关文章
|
存储 Java 关系型数据库
Springboot AOP实现指定敏感字段数据加密 (数据加密篇 二)
Springboot AOP实现指定敏感字段数据加密 (数据加密篇 二)
1537 0
Springboot AOP实现指定敏感字段数据加密 (数据加密篇 二)
|
2月前
|
存储 安全 Nacos
使用KMS为MSE-Nacos敏感配置加密的最佳实践
本文主要介绍通过KMS密钥管理服务产生的密钥对敏感的AK等数据进行加密之后可以有效解决泄漏带来的安全风险问题,其次通过KMS凭据托管的能力直接将MSE的主AK进行有效管理,保障全链路无AK的业务体验,真正做到安全、可控。
92286 3
|
6月前
|
存储 Java 数据库
在 Spring Boot 中如何实现对加密后的敏感字段进行模糊查询?
在 Spring Boot 中如何实现对加密后的敏感字段进行模糊查询?
151 0
在 Spring Boot 中如何实现对加密后的敏感字段进行模糊查询?
|
11月前
|
安全 IDE NoSQL
SpringBoot敏感配置加密:Jasypt
SpringBoot敏感配置加密:Jasypt
144 0
|
11月前
|
druid 安全 IDE
SpringBoot敏感配置加密:Druid
SpringBoot敏感配置加密:Druid
544 0
|
SQL 关系型数据库 MySQL
mysql更新密码字段为手机号后六位前面拼接上Q后面拼接上W然后md5加密
mysql更新密码字段为手机号后六位前面拼接上Q后面拼接上W然后md5加密
276 0
|
关系型数据库 MySQL Go
字段加密后长度变化
字段加密后长度变化
288 0
|
存储 NoSQL Java
jasypt-spring-boot:加密SpringBoot的敏感配置信息
jasypt-spring-boot:加密SpringBoot的敏感配置信息
1359 0
jasypt-spring-boot:加密SpringBoot的敏感配置信息
|
Java 数据安全/隐私保护
Java实现最电话号码的简单加密源码
Java实现最电话号码的简单加密源码
18 0