If you really expect it to be
… 100% uncrackable…
you’ll have to start by abandoning your “keep certain parts private” idea and assume that “the enemy knows the system”.
See Kerckhoffs’ principles – Why should I make my cipher public? for details on that one.
And that is just the beginning of a long journey on your way towards creating your own cryptographic solution. Besides, good programmers use well-vetted cryptographic algorithms instead of reinventing the wheel – which comes with a truckload of pitfalls if you don‘t have in-deep knowledge of algorithm design as well as cryptanalysis.
See, there are many way to attack cryptographic solutions and chances are high that you’re not aware of those attacks, how they work, and what a specific algorithm needs to prevent them. That in itself is already a reason not to start creating your own unless you really know what you are doing. And that tends to end up with learning a truckload about algorithm design and cryptanalytic attacks.
For example, when it comes to block ciphers, you’re facing cryptanalytic attacks like:
Note that this isn’t even considering other important things like authentication (encrypt-then-MAC) and stuff yet.
There‘s this saying along the lines of “first learn to break it, then you can try to create it”, which boils down to: you can’t create a secure cryptographic algorithm unless you know all the ways it could be attacked – and actively construct your algorithm to prevent such attacks as good as possible. If you don’t, you’re bound to fail because you might close and lock a door while leaving a window wide open.
Fact is that you have to be able to apply the latest attacks to your newly designed crypto algorithm to ensure it is immune to the present day attacks.
To visualize this problem in a much simpler way (quoting myself):
As said: good programmers use well-vetted cryptographic algorithms instead of reinventing the wheel. There are ample good solutions to almost every cryptographic problem out there; especially for encryption purposes. So, there really is no need to create your own (which is bound to end in a security disaster if you don’t have the according knowledge and experience).
For further reading, check “Why is writing your own encryption discouraged?”