Code Examples
Comprehensive Base64 Padding Removal Scenarios
1. Basic Padding Removal
public class BasicPaddingRemoval {
public static String removePadding(String base64String) {
return base64String.replaceAll("=", "");
}
public static void main(String[] args) {
String input = "SGVsbG8gTGFiRXg===";
String cleaned = removePadding(input);
System.out.println("Cleaned: " + cleaned);
}
}
2. Safe Padding Removal with Validation
import java.util.Base64;
public class SafeBase64Cleaner {
public static String safeRemovePadding(String base64Input) {
try {
// Ensure proper padding
while (base64Input.length() % 4 != 0) {
base64Input += "=";
}
// Decode and re-encode to validate
byte[] decodedBytes = Base64.getDecoder().decode(base64Input);
return Base64.getEncoder().encodeToString(decodedBytes)
.replaceAll("=+$", "");
} catch (IllegalArgumentException e) {
System.err.println("Invalid Base64 string: " + e.getMessage());
return base64Input;
}
}
}
Advanced Padding Removal Techniques
3. URL-Safe Base64 Padding Removal
public class UrlSafeBase64Handler {
public static String removeUrlSafePadding(String input) {
return input.replace("=", "")
.replace('+', '-')
.replace('/', '_');
}
public static void main(String[] args) {
String urlSafeEncoded = "SGVsbG8gTGFiRXg===";
String cleanedUrl = removeUrlSafePadding(urlSafeEncoded);
System.out.println("Cleaned URL-Safe: " + cleanedUrl);
}
}
Padding Removal Workflow
graph TD
A[Original Base64 String] --> B{Padding Check}
B -->|Has Padding| C[Remove '=' Characters]
B -->|No Padding| D[Return Original String]
C --> E[Validate Encoding]
E --> F[Return Cleaned String]
Padding Removal Comparison
Method |
Complexity |
Performance |
Use Case |
Simple Replacement |
Low |
Fast |
Basic scenarios |
Validation-Based |
Medium |
Moderate |
Secure applications |
URL-Safe Conversion |
High |
Slower |
Web/API contexts |
4. Flexible Padding Removal Utility
public class FlexibleBase64Cleaner {
public enum PaddingStrategy {
REMOVE_ALL,
REMOVE_TRAILING,
KEEP_ORIGINAL
}
public static String cleanBase64(String input, PaddingStrategy strategy) {
switch (strategy) {
case REMOVE_ALL:
return input.replaceAll("=", "");
case REMOVE_TRAILING:
return input.replaceFirst("=+$", "");
default:
return input;
}
}
public static void main(String[] args) {
String sample = "SGVsbG8gTGFiRXg===";
System.out.println("Remove All: " +
cleanBase64(sample, PaddingStrategy.REMOVE_ALL));
}
}
- Minimize repeated string manipulations
- Use built-in Java Base64 methods
- Implement caching for frequently used encodings
- Validate input before processing